快速排序算法的 JavaScript 实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序算法的 JavaScript 实现相关的知识,希望对你有一定的参考价值。

快速排序是一种在大多数情况下比冒泡排序效率更高(详情参考有关算法复杂度的文章)的算法。

注意:许多编程语言内置的排序 API 底层实现便是基于快速排序。

ES5 与 ES6 语法在实现该算法时区别不大,以下仅提供 ES5 版本。

function quickSort(arr) {
    var len = arr.length;
    if (len <= 1) {
        return arr.slice(0); // 注意用 slice 可防范 arr[0] 为 undefined 
    }
    var left = [], right = [], mid = [];
    mid.push(arr[0]);
    for (var i = 1; i < len; i++) {
        if (arr[i] < mid[0]) {
            left.push(arr[i]);
        } else {
            right.push(arr[i]);
        }
    }
    return quickSort(left).concat(mid.concat(quickSort(right))); // 递归调用并拼接
}

console.log(quickSort([27,4,67,289,678,2,74,97,86,79,0,290,54,28,75]))
// [0, 2, 4, 27, 28, 54, 67, 74, 75, 79, 86, 97, 289, 290, 678]

 

the end


 

以上是关于快速排序算法的 JavaScript 实现的主要内容,如果未能解决你的问题,请参考以下文章

2.排序算法实现(JavaScript版)-冒泡-选择-快速排序

JavaScript实现快速排序算法

javascript实现快速排序算法

10种经典排序算法的JavaScript实现方法

快速排序算法的 JavaScript 实现

排序算法:图解快速排序算法--附带基于Python和JavaScript的实现