快速排序

52 阅读1分钟
 let arrs = [20, 10, 4, 5, 8, 31, 0, 50]
    function aw(arrs) {
        if (arrs.length <= 1) {
            return arrs;
        }
        const index = Math.floor(arrs.length / 2);
        const proid = arrs.splice(index, 1)[0];
        let left = []
        let right = [];
        arrs.map((item) => {
            if (item > proid) {
                left.push(item)
            } else {
                right.push(item)
            }
        })
        return aw(left).concat(proid, aw(right))
    }
    console.log(aw(arrs));
    
    function fast_sort(newArr) {
        const leftArr = [];
        const rightArr = [];
        let target = newArr[0]
        if (newArr.length <= 1) {
            return newArr;
        }
        for (let i = 1; i < newArr.length; i++) {
            if (newArr[i] >= target) {
                leftArr.push(newArr[i])
            } else {
                rightArr.push(newArr[i])
            }
        }
        return fast_sort(leftArr).concat(target, fast_sort(rightArr))
    }
    const newArr = [1, 8, 3, 9, 7, 2]
    console.log(fast_sort(newArr));