JS算法笔记—快速排序
//快速排序
let arr = [5,7,9,6,4,2,78,56,55,98,123]
function quickSort2(arr, start, end) {
while(start >= end) return
let pivot = start,
pivotVal = arr[pivot],
idx = pivot + 1
while (idx <= end) {
if (arr[idx] < pivotVal) {
pivot ++
if (arr[pivot] != arr[idx]) {
[arr[pivot], arr[idx]] = [arr[idx], arr[pivot]]
}
}
idx ++
}
[arr[pivot], arr[start]] = [arr[start], arr[pivot]]
quickSort2(arr, pivot + 1, end)
quickSort2(arr, 0, pivot - 1)
return arr
}
quickSort2(arr, 0, arr.length-1);//[2, 4, 5, 6, 7, 9, 55, 56, 78, 98, 123]