234234234

js 快排

 

 

<script>
    var arr = [1,4,2,233,23,2,3,32,3,4,3,54,65,7,68,9,0];

    function quickSort(arr) {
        // 边界条件
        if (arr.length <= 1) {
            return arr;
        }
        // 获取中间下标及元素
        const middleIdx = Math.floor((arr.length - 1) / 2);
        // 把中间元素拿出来
        const middleEle = arr.splice(middleIdx, 1)[0];
        // 开始快速排序
        const left = [], right = [];
        for (let i = 0; i < arr.length; i++) {
            if (arr[i] > middleEle) {
                // 大的往后移
                right.push(arr[i]);
            } else {
                // 小的往左移
                left.push(arr[i]);
            }
        }
        return quickSort(left).concat([middleEle], quickSort(right));
    }

    console.log(quickSort(arr));

</script>

 

、、、、

posted @ 2022-01-11 16:17  你若愿意,我一定去  阅读(38)  评论(0编辑  收藏  举报
23423423423