美文网首页
快速排序(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