Array.prototype.quickSort = function() {
var len = this.length;
if(len < 2) return this;
var left = [], right = [], base = this[0];
for(var i = 1; i < len; i ++) {
var iv = this[i];
iv >= base && right.push(iv);
iv < base && left.push(iv);
}
return left.quickSort().concat(base, right.quickSort())
} var arr = [5, 3, 7, 4, 1, 9, 8, 6, 2];
console.log(arr.quickSort())

抄wiki的,代码质量高,实现简单

https://zh.wikipedia.org/wiki/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F#JavaScript

js 快速排序算法的更多相关文章

  1. js快速排序算法解析

    数组的快速排序算法,和并归排序步骤基本类似. 都是先拆分,后合并.并归排序是:拆分容易,合并难. 快速排序是:拆分难,合并容易 要理解快速排序,首先要理解拆分逻辑 要素:找一个基准点,通过操作使得数列 ...

  2. js快速排序算法

    真正的快速排序算法一: function quickSort(array){ function sort(prev, numsize){ var nonius = prev; var j = nums ...

  3. 结构-行为-样式-Js排序算法之 快速排序

    快速排序算法,是我的算法系列博客中的第二个Js实现的算法,主要思路:    在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放 ...

  4. js排序算法05——快速排序

    终于到了传说中的快速排序算法了,快速排序的思想和归并排序一样,都是采用分治思想,不同之处在于归并每次将数组一分为二,最后将小的数组进行比较,合并为大数组.快排是每次找一个主元,也就是基准数,按照这个基 ...

  5. Learn Algorithms With Javascript - 基于 Js 进行算法学习

    基于 javascript 学习并实现常用的经典算法,欢迎对算法和数学感兴趣的 Js 开发者参与,一起学习共同进步. 算法实现 排序 插入排序 sort/lib/insertion-sort.js 希 ...

  6. Js常见算法实现汇总

    /*去重*/ <script> function delRepeat(arr){ var newArray=new Array(); var len=arr.length; for(var ...

  7. 总结下js排序算法和乱序算法

    其实本人最怕的就是算法,大学算法课就感觉老师在讲天书,而且对于前端来说,算法在实际的应用中实在是很有限.毕竟算法要依靠大量的数据为基础才能发挥出算法的效率,就浏览器那性能,......是吧,退一万步说 ...

  8. 快速排序算法 java 实现

    快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...

  9. C# 集合扩展快速排序算法

    /// <summary> /// 对集合进行排序,如 /// List<Person> users=new List<Person>(){.......} /// ...

随机推荐

  1. FD limit (65535) too low for maxconn=65535/maxsock=131084.Please raise 'ulimit-n' to 131084 or more to avoid any trouble.

    在安装完Haproxy启动时报错,诸如:FD limit (65535) too low for maxconn=65535/maxsock=131084.Please raise 'ulimit-n ...

  2. Reporting报表开发知识合并[个人原创]

    [个人原创] ,转发请声明原文链接 了解 a)      SSRS全称 SQL Server Reporting Services,是依赖于数据库运行的,是微软开发的重量级别的BI产品 b)      ...

  3. centos7主机间免密登录、复制文件

    下面实例为三个节点间 1.分别在三个节点设置域名映射 vi /etc/hosts  在文件末尾追加 192.168.10.121 node1 192.168.10.122 node2 192.168. ...

  4. java类加载器-Bootstrap、 ExtClassLoader、 AppClassLoader的关系

    1. 简单介绍 Bootstrap. ExtClassLoader.  AppClassLoader是java最根正苗红的类加载器. Bootstrap是本地代码编写的(例如C), ExtClassL ...

  5. 通俗地说决策树算法(三)sklearn决策树实战

    前情提要 通俗地说决策树算法(一)基础概念介绍 通俗地说决策树算法(二)实例解析 上面两篇介绍了那么多决策树的知识,现在也是时候来实践一下了.Python有一个著名的机器学习框架,叫sklearn.我 ...

  6. Docker:跨主机通信

    修改主机docker默认的虚拟网段,然后在各自主机上分别把对方的docker网段加入到路由表中,配合iptables即可实现docker容器夸主机通信.配置方法如下: 设有三台虚拟机 v1: 10.1 ...

  7. 如何为 caddy 添写自定义插件

    如何为 caddy 添写自定义插件 项目地址:https://github.com/yhyddr/quicksilver/tree/master/gosample/caddy-plugin 前言 Ca ...

  8. Paxos算法原理

    1.从ACID到CAP 我们知道传统集中式系统中实现ACID是很简单的,在分布式环境中,涉及到不同的节点,节点内的ACID可以控制,那么节点间的ACID如何控制呢?构建一个可用性和一致性的分布系统成为 ...

  9. 直击根源:微信小程序中web-view再次刷新后页面需要退两次

    背景 在上一章(直击根源:vue项目微信小程序页面跳转web-view不刷新)解决了vue在小程序回退不刷新的问题之后,会引出了一个刷新的页面需要点击返回两次才能返回上一个页面 问题描述 在A页面从B ...

  10. (五)c#Winform自定义控件-复选框

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...