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兼容的placeholder属性详解
Aug 18 Javascript
js的Boolean对象初始值示例
Mar 04 Javascript
js使用removeChild方法动态删除div元素
Aug 01 Javascript
js如何打印object对象
Oct 16 Javascript
javascript获取select标签选中的值
Jun 04 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
Jquery删除css属性的简单方法
Dec 04 Javascript
Bootstrap导航中表单简单实现代码
Mar 06 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
vue.js声明式渲染和条件与循环基础知识
Jul 31 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
node.js之基础加密算法模块crypto详解
Sep 11 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
提高php编程效率技巧
2015/08/13 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
jquery等待效果示例
2014/05/01 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
小程序实现投票进度条
2019/11/20 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
Django 内置权限扩展案例详解
2019/03/04 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
致铅球运动员广播稿精选
2014/01/12 职场文书
五年级学生评语
2014/04/22 职场文书
2015年护士节慰问信
2015/03/23 职场文书
护士医德医风心得体会
2016/01/25 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
深入理解python协程
2021/06/15 Python