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 流畅动画实现原理
Sep 08 Javascript
JS链式调用的实现方法
Mar 07 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
jQuery基于排序功能实现上移、下移的方法
Nov 26 Javascript
微信小程序实现图片预览功能
Jan 31 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
Mar 08 Javascript
微信小程序block的使用教程
Apr 01 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
解决vue-router 二级导航默认选中某一选项的问题
Nov 01 Javascript
JavaScript接口实现方法实例分析
May 16 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 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函数之日期时间函数date()使用详解
2013/09/09 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python json模块使用实例
2015/04/11 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
Python rstrip()方法实例详解
2018/11/11 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
python绘制多个子图的实例
2019/07/07 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
大学生专科学习生活的自我评价
2013/12/07 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
协议书模板
2014/04/23 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技