js快速排序的实现代码


Posted in Javascript onDecember 08, 2013

但是有不少的书本讲得并不是很清楚,而且不同的教材的实现方式也不尽相同,
我这里将最简单的快速排序的思路写出来供大家参考。

希望不管是使用什么语言都能从这个简单的代码里很方便的掌握快排思路与编写方式

function quick_sort(list, start, end) {  
      if (start < end) {  
        var pivotpos = partition(list, start, end);   //找出快排的基数  
        quick_sort(list, start, pivotpos - 1);        //将左边的快排一次  
        quick_sort(list, pivotpos + 1, end);          //将右边的快排一次  
      }  
    }        
    //将一个序列调整成以基数为分割的两个区域,一边全都不小于基数,一边全都不大于基数  
    function partition(list, start, end) {  
      var pivotpos = start;  
      var pivot = list[start];  
      var tmp;  
      for(var i = start + 1; i <= end; i ++) {  
        if (list[i] < pivot) {  
          tmp = list[i];  
          pivotpos += 1;  
          list[i] = list[pivotpos];  
          list[pivotpos] = tmp;  
        }  
      }  
      tmp = list[start];  
      list[start] = list[pivotpos];  
      list[pivotpos] = tmp;  
      return pivotpos;  
    }  
      
    var list = [8,2,4,65,2,4,7,1,9,0,2,34,12];  
    quick_sort(list, 0, list.length);
Javascript 相关文章推荐
JavaScript 格式字符串的应用
Mar 29 Javascript
基于MooTools的很有创意的滚动条时钟动画
Nov 14 Javascript
Textarea与懒惰渲染实现代码
Jan 04 Javascript
js select option对象小结
Dec 20 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
jQuery纵向导航菜单效果实现方法
Dec 19 Javascript
js实现鼠标拖动功能
Mar 20 Javascript
es6中Promise 对象基本功能与用法实例分析
Feb 23 Javascript
js校验开始时间和结束时间
May 26 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 Javascript
Javascript中匿名函数的多种调用方式总结
Dec 06 #Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 #Javascript
JavaScript作用域与作用域链深入解析
Dec 06 #Javascript
深入解析JavaScript中的变量作用域
Dec 06 #Javascript
关于Javascript作用域链的八点总结
Dec 06 #Javascript
Javascript变量作用域详解
Dec 06 #Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 #Javascript
You might like
php循环输出数据库内容的代码
2008/05/24 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
requireJS使用指南
2016/04/27 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
python检测是文件还是目录的方法
2015/07/03 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python 探针的实现原理
2016/04/23 Python
使用Python &amp; Flask 实现RESTful Web API的实例
2017/09/19 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
军训生自我鉴定范文
2013/12/27 职场文书
安全生产承诺书范文
2014/05/22 职场文书
体育活动总结
2015/02/04 职场文书
留学推荐信中文范文
2015/03/26 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
Python Matplotlib绘制动画的代码详解
2022/05/30 Python