let arr=[5,7,5,8,1,2,9,10,51,12,18,9,10,2,5];
let l,r;
function quickSort(arr, l, r) {
if (l < r) {
let p = partition(arr, l, r);
quickSort(arr, l, p[0] - 1);
quickSort(arr, p[1] + 1, r);
}
return arr;
}
function partition(arr, l, r) {
let less = l - 1;
let more = r+1;
while (l < more) {
if (arr[l] < arr[r]) {
swap(arr, ++less, l++);
} else if (arr[l] > arr[r]) {
swap(arr, --more, l);
} else {
l++;
}
}
//swap(arr, more, r);
return [less + 1, more-1]; //返回等于区间的边界
}
function swap(arr,q,w){
tmp=arr[q];
arr[q]=arr[w];
arr[w]=tmp;
}
let len=arr.length-1;
let b=quickSort(arr,0,len);
console.log(b);