JS 快速排序

2021-09-19 05:26:40 字數 1084 閱讀 2747

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