花了两天晚上的时间,终于成功手写了快排,记录一下。
function quickSort(left, right, arr) {
if (left < right) {
let l = left;
let r = right;
const splitNum = arr[l];
while (l < r) {
while (arr[r] > splitNum && l < r) {
r--;
}
if (arr[r] < splitNum) {
arr[l++] = arr[r];
}
while (arr[l] <= splitNum && l < r) {
l++;
}
if (arr[l] > splitNum) {
arr[r--] = arr[l];
}
}
arr[l] = splitNum;
quickSort(left, l - 1, arr);
quickSort(l + 1, right, arr);
} else {
return;
}
}
const arr = [3, 5, 6, 4, 3, 7, 8, 9, 5];
quickSort(0, arr.length - 1, arr);