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 权威指南(第四版) 读书笔记
Aug 11 Javascript
为Extjs加加速(javascript加速)
Aug 19 Javascript
js静态方法与实例方法分析
Jul 04 Javascript
自己做的模拟模态对话框实现代码
May 23 Javascript
JavaScript组件焦点与页内锚点间传值的方法
Feb 02 Javascript
JavaScript动态提示输入框输入字数的方法
Jul 27 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
zTree树形插件异步加载方法详解
Jun 14 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 jQuery
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
Nuxt的路由动画效果案例
Nov 06 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中for循环语句的几种变型
2006/11/26 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
php的ddos攻击解决方法
2015/01/08 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
javascript 写类方式之七
2009/07/05 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python-for循环的内部机制
2020/06/12 Python
Python如何输出百分比
2020/07/31 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
python中yield的用法详解
2021/01/13 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
客户代表自我评价范例
2013/09/24 职场文书
自考毕业生自我鉴定
2013/11/04 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
Golang二维数组的使用方式
2021/05/28 Golang