快速排序(QuickSort)的JavaScript实现

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 ]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容