let arr = [5, 4, 6, 8, 7, 9, 1, 2, 3]
let fn: any = (arr: number[]) => {
if (arr.length < 2) {
return arr
} else {
let pivotIndex = Math.floor(arr.length / 2)
let pivot = arr[pivotIndex]
let lessArr: number[] = []
let moreArr: number[] = []
for (const item of arr) {
if (item < pivot) {
lessArr.push(item)
}
if (item > pivot) {
moreArr.push(item)
}
}
return [...fn(lessArr), pivot, ...fn(moreArr)]
}
}
fn(arr) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
算法:快速排序
于 2023-06-17 22:00:12 首次发布