var arr = [1, 19, 9, 9, 8, 22, 14, 52, 20, 37];
var re = qs(arr);
console.log(re);
function qs(array)
// 中按 下標
var ct = math.floor(array.length / 2);
// 中間下標對應的數
var ctv = array[ct];
// console.log(ctv);
// 將中間數從原陣列刪除
// console.log(arr);
array.splice(ct, 1);
// console.log(array);
// 建立另個左右空陣列來儲存左右陣列元素
var left = ;
var right = ;
for (var i = 0; i < array.length; i++) else
}// 遞迴 反覆呼叫 反覆拼接直到左右陣列長度小於等於1 結束**
var end = qs(left).concat(ctv, qs(right));
return end;
}
js 快速排序
最近看到乙個排序,所以自己也看了一下,這裡分享一下。首先建立乙個陣列 建立乙個陣列 const arr function random min,max function generatearr len generatearr 10 自己可以試試,看看效果 然後是重點了,排序的主體函式 functio...
JS快速排序
從這裡看到的,修改了下,跳出左右側搜尋時不需要判斷等於基準值的情況,其次 當排序完有一側只有0或者1個數字時則該側不再進行排序 不判斷也可以,因為此時start等於end,進行排序時,會直接跳出迴圈,但是仍會列印排序後的陣列,就會有重複,影響判斷排序次數。陣列數值用的是資料結構 c語言版 第二版 嚴...
JS 快速排序
var arr 90,80,79,60,5,4,31,2,9 1 取基準值的下標 index math.floor arr.length 2 2 取基準值 midvalue arr.splice index,1 3 根據基準值分左右 定義兩個子集,接收資料 var left var right 4 ...