quicksort.ts
function quickSort(arr, lo = 0, hi = arr.length - 1) {
if (lo >= hi) return arr;
const pivot = arr[(lo + hi) >> 1];
let i = lo, j = hi;
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++; j--;
}
}
quickSort(arr, lo, j);
quickSort(arr, i, hi);
return arr;
}
pivot=7 · 比较 23 次 · 交换 8 次 · 0.4ms