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 相关文章推荐
比较全的JS checkbox全选、取消全选、删除功能代码
Dec 19 Javascript
JQuery 入门实例1
Jun 25 Javascript
JSON 编辑器实现代码
Dec 06 Javascript
JavaScript Accessor实现说明
Dec 06 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
Jul 26 Javascript
js 获取元素下面所有li的两种方法
Apr 14 Javascript
jQuery表单验证功能实例
Aug 28 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
Canvas实现微信红包照片效果
Aug 21 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源代码安装常见错误与解决办法分享
2013/05/28 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
微信API接口大全
2015/04/15 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
python3实现单目标粒子群算法
2019/11/14 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
四好少年事迹材料
2014/01/12 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
销售员岗位职责
2014/06/09 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
领导欢迎词致辞
2015/01/23 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
致运动员赞词
2015/07/22 职场文书
小学毕业感言100字
2015/07/30 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL