标准快速排序

var arr = [4, 5,1, 6, 9, 3, 2, 8, 7];

function swap(arr, a, b) {
    var temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;
}

function quickSort2(arr, begin, end) {
    if (begin >= end - 1) return;
    var left = begin;
    var right = end;
    do {    // 只要left比right小就继续  

        do left++;  // 当left:索引 小于 right:索引 并且 当前arr[left] : 值 小于 4 ,left就++
        while (left < right && arr[left] < arr[begin]);     // left : 0; right : length; arr[left] : ?; arr[begin] : arr[0]

        do right--; // 当右边的比第一个小的时候right停止--
        while (right > left && arr[right] > arr[begin]);
        if (left < right) swap(arr, left, right)
    } while (left < right); // 直到left 比 right大停止循环

    var swapPoint = left == right ? right - 1 : right;
    swap(arr, begin, swapPoint);
    // console.log(arr) 最后验证自己的排序是否正确
    quickSort2(arr, begin, swapPoint);
    quickSort2(arr, swapPoint + 1, end);

}

function quickSort(arr) {
    quickSort2(arr, 0, arr.length);
}

quickSort(arr);
console.log(arr)    // [ 1, 2, 3, 4, 6, 7, 8, 9 ]

落过的 帅哥美女 如果我哪里说的不全,或者哪里解释错了,希望可以说一下,我马上改,

结束了画个重点吧

重点:走过路过的帅哥美女,点个赞,程序员不嫖程序员┗|`O′|┛ 散会

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里小白?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值