Open
Description
1 - 快速排序
// 最好的情况是O(N),最差的时候是O(N^2),所以平时说的O(N*logN)为其平均时间复杂度
var arr = [4, 3, 1, 5, 10, 2, 7]
function quickSort (arr) {
if (arr.length <= 1) return arr
var left = [], right = [], mid = []
var pivot_index = Math.floor(arr.length / 2)
var pivot = arr[pivot_index]
// 小于放到left, 等于放到mid, 大于放到right
for (data of arr) {
if (data < pivot) { left.push(data) }
else if (data > pivot) { right.push(data) }
else { mid.push(pivot) }
}
return quickSort(left).concat(mid).concat(quickSort(right))
}
quickSort(arr)
Metadata
Metadata
Assignees
Labels
No labels