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 相关文章推荐
jquery下组织javascript代码(js函数化)
Aug 25 Javascript
js 中的switch表达式使用示例
Jun 03 Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
May 13 jQuery
jQuery选择器之子元素选择器详解
Sep 18 jQuery
通过源码分析Vue的双向数据绑定详解
Sep 24 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
浅析node.js的模块加载机制
May 25 Javascript
微信小程序图表插件wx-charts用法实例详解
May 20 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 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
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
CSS常用网站布局实例
2008/04/03 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
请解释流与文件有什么不同
2016/07/29 面试题
艺术系应届生的自我评价
2013/10/19 职场文书
物业管理专业个人的自我评价
2013/11/19 职场文书
行政经理的岗位职责
2013/11/23 职场文书
单位办理社保介绍信
2014/01/10 职场文书
统招统分证明
2015/06/23 职场文书
2015大学迎新标语
2015/07/16 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
Redis 哨兵机制及配置实现
2022/03/25 Redis