js 快速排序

1.选择数组第一个基准数。

2.遍历数组其他元素与基准数比较大小,比基准数小的放到左边,大的放到右边。

3.第一轮比较之后得到左边的数组和右边的数组,递归调用函数,再次比较左右两边数组的大小,直到数组的长度为1。

function quickSort(arr) {
            if (arr.length <= 1) {
                return arr
            }
            var left = [],
                right = []
            var current = arr.splice(0, 1);
            for(var i = 0; i < arr.length; i++) {
                if (arr[i] < current) {
                    left.push(arr[i])
                } else {
                    right.push(arr[i])
                }
            }
            return quickSort(left).concat(current, quickSort(right))
        }

        const arr1 = quickSort([3, 4, 1, 1, 2])
        console.log(arr1, 'arr1')

 

posted @ 2022-04-18 23:12  Sofiaღ  阅读(73)  评论(0编辑  收藏  举报