代码来了,前两天事情太多了,就没有更新,以后一定准时!
function quicksort(left, right, arry) {
if (left >= right)
return;
let temp = arry[left]; //temp中存的就是基准数
let i = left;
let j = right;
while (i !== j) {
//顺序很重要,要先从右边开始找
while (arry[j] >= temp && i < j)
j--;
//再从左边开始找
while (arry[i] <= temp && i < j)
i++;
//交换两个数在数组中的位置
if (i < j) {
let t = arry[i];
arry[i] = arry[j];
arry[j] = t;
}
}
//最终将基准数归位
arry[left] = arry[i];
arry[i] = temp;
quicksort(left, i - 1, arry);//继续处理左边的,这里是一个递归的过程
quicksort(i + 1, right, arry);//继续处理右边的 ,这里是一个递归的过程
}
let list = [6, 2, 1, 7, 9, 5, 4, 3, 10, 8];
quicksort(0, list.length - 1, list);