/**
参数说明
target 需要排序的目标数组
l 需要排序的起始项
r 需要排序的终止项
*/
function quickSort(target, l, r) {
if (l >= r) return
let i = l; let j = r; let key = target[l];//选择第一个数为key
while (i < j) {
while (i < j && target[j] >= key)//从右向左找第一个小于key的值
j--;
if (i < j) {
target[i] = target[j];
i++;
}
while (i < j && target[i] < key)//从左向右找第一个大于key的值
i++;
if (i < j) {
target[j] = target[i];
j--;
}
}
//i == j
target[i] = key;
quickSort(target, l, i - 1);//递归调用
quickSort(target, i + 1, r);//递归调用
return target
}
console.log(quickSort([23, 32, 5, 72, 12, 1, 2], 0, 5))
console.log(quickSort([23, 32, 5, 72, 12, 1], 4, 5))
console