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、對陣列中的元素遍歷 進行分左右的操作;
for (var i = 0; i < arr.length; i++) else
}
完整**如下;
var arr = [90, 80, 79, 60, 5, 4, 31, 2, 9];
function quicksort(arr)
console.log("**********=>",arr);
//1.取基準值的下標
var index = math.floor(arr.length / 2);
//2.取基準值
var midvalue = arr.splice(index, 1);//splice(stateindex, 刪除的數量)
//3.對陣列中的元素遍歷 進行分左右的操作
定義兩個子集 接收資料
var left = ;
var right = ;
for (var i = 0; i < arr.length; i++) else
}console.log('l', left, 'm', midvalue, 'r', right);
//4.重複第一步和第二步
return quicksort(left).concat(midvalue, quicksort(right));
}var result = quicksort(arr);
console.log('result',result);
js 快速排序
最近看到乙個排序,所以自己也看了一下,這裡分享一下。首先建立乙個陣列 建立乙個陣列 const arr function random min,max function generatearr len generatearr 10 自己可以試試,看看效果 然後是重點了,排序的主體函式 functio...
JS快速排序
從這裡看到的,修改了下,跳出左右側搜尋時不需要判斷等於基準值的情況,其次 當排序完有一側只有0或者1個數字時則該側不再進行排序 不判斷也可以,因為此時start等於end,進行排序時,會直接跳出迴圈,但是仍會列印排序後的陣列,就會有重複,影響判斷排序次數。陣列數值用的是資料結構 c語言版 第二版 嚴...
快速排序JS
思想 建立兩個陣列left right 取乙個基準值可以陣列中任一元素 下面取了陣列的中間元素並且從陣列中剝離出來 將陣列中的元素與基準值比較 小於基準值的放進左邊 left陣列 大於基準值的放進右邊right陣列 重複 步驟2 3 var arr 3,4,2,6,5,8,9,10,16,13 le...