快速排序算法的 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 实现的主要内容,如果未能解决你的问题,请参考以下文章