js快速排序 中間排序

2021-10-25 12:42:40 字數 641 閱讀 3137

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 ...