博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序算法的 JavaScript 实现
阅读量:5138 次
发布时间:2019-06-13

本文共 740 字,大约阅读时间需要 2 分钟。

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

注意:许多编程语言内置的排序 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


 

转载于:https://www.cnblogs.com/yungtsan/p/7440801.html

你可能感兴趣的文章
UIBezierPath的使用(持续更新)
查看>>
《天道》经典语录
查看>>
APPlication,Session,Cookie,ViewState和Cache之间的区别
查看>>
课程五
查看>>
AGAL寄存器
查看>>
8月2
查看>>
面向对象
查看>>
Linux内核 TCP/IP、Socket参数调优
查看>>
Matlab GUI axes显示多幅图像
查看>>
软件基础之-----测试的方法
查看>>
【转】这些隐藏在苹果iPhone当中的内置代码你是否知道?
查看>>
Fedora 17 x86_64 U盘安装详解
查看>>
BZOJ.1007.[HNOI2008]水平可见直线(凸壳 单调栈)
查看>>
PCB板的线宽、覆铜厚度与通过的电流对应的关系
查看>>
linux4.1.36 解决 SPI 时钟找不到 不生成设备 device
查看>>
ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别(转)
查看>>
Mysql Insert Or Update语法例子
查看>>
python+Eclipse+pydev环境搭建
查看>>
1.8
查看>>
Android各个文件夹对应的分辨率?
查看>>