const quick_sort = (arr, l, r) => {
if (l >= r) return
let left = l, right = r
let pivot = arr[left]
while (left < right) {
while (left < right && arr[right] >= pivot) { //每一步涉及到左右指针的加减都需要保证作指针小于右指针
right--
}
if (left < right) {
arr[left] = arr[right]
}
while (left < right && arr[left] <= pivot) {
left++
}
if (left < right) {
arr[right] = arr[left]
}
if (left >= right) {
arr[left] = pivot
}
}
quick_sort(arr, l , right - 1)
quick_sort(arr, right + 1, r)
}
需要传入数组,排序开始的下标以及排序结束的下标