美文网首页
快速排序(QuickSort)的JavaScript实现

快速排序(QuickSort)的JavaScript实现

作者: stone呀 | 来源:发表于2019-02-14 16:49 被阅读1次
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 ]

相关文章

网友评论

      本文标题:快速排序(QuickSort)的JavaScript实现

      本文链接:https://www.haomeiwen.com/subject/faaeeqtx.html