昨天面试考了算法题,竟然做不出来,但是好久没认真写过算法了。得反思一下。
快速排序:
dy>
<script>
let arr = [4, 3, 6, 2, 8];
console.log(quicksort(arr, 0, arr.length - 1));
function quicksort(arr, left, right) {
if (left < right) {
let mid = getMid(arr, left, right);
quicksort(arr, left, mid - 1);
quicksort(arr, mid + 1, right);
}
return arr;
}
function getMid(arr, left, right) {
let tmp = arr[left];
while (left < right) {
while (left < right && arr[right] >= tmp) {
right--;
}
arr[left] = arr[right];
while (left < right && arr[left] <= tmp) {
left++;
}
arr[right] = arr[left];
}
arr[left] = tmp;
return left;
}
</script>