快速排序JS

2021-10-01 13:08:18 字數 582 閱讀 6579

思想:

建立兩個陣列left right

取乙個基準值可以陣列中任一元素 下面取了陣列的中間元素並且從陣列中剝離出來

將陣列中的元素與基準值比較 小於基準值的放進左邊 left陣列 大於基準值的放進右邊right陣列

重複 步驟2 3

var arr = [3, 4, 2, 6, 5, 8, 9, 10, 16, 13]; // length = 10

function quicksort(arr)

// 基準值

var pivot = arr[math.floor(arr.length / 2)];

arr.splice(arr.indexof(pivot), 1);

var left = ;

var right = ;

for (var i = 0; i < arr.length; i++) else

}return quicksort(left).concat([pivot], quicksort(right));

}console.log(quicksort(arr));

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