快速排序(QuickSort)的JavaScript实现

2019-02-14  本文已影响1人  stone呀
let arr = [1, 52, 3, 6, 13, 23, 45, 9, 8, 76, 73, 84];

function quicksort(arr) {
    if(arr.length <= 1) {
        return arr;
    }
    // 取中心元素下标
    const poivtIndex = Math.floor(arr.length / 2);
    // 在数组中删除这个元素,并取出这个元素
    const poivtElement = arr.splice(poivtIndex, 1)[0];
    // 初始化left 和 right 数组
    let left = [];
    let right = [];
    for(let i = 0; i < arr.length; i++) {
        if(arr[i] <= poivtElement) {
            left.push(arr[i]);
        } else {
            right.push(arr[i]);
        }
    }
    // 递归调用
    return quicksort(left).concat([poivtElement], quicksort(right));
}

const result = quicksort(arr)
console.log(result) // [ 1, 3, 6, 8, 9, 13, 23, 45, 52, 73, 76, 84 ]
上一篇下一篇

猜你喜欢

热点阅读