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 相关文章推荐
innerText和innerHTML 一些问题分析
May 18 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
Jul 26 Javascript
基本jquery的控制tabs打开的数量的代码
Oct 17 Javascript
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
jQuery之end()和pushStack()使用介绍
Feb 07 Javascript
JS:window.onload的使用介绍
Nov 13 Javascript
javascript关于继承解析
May 10 Javascript
jQuery实现可移动选项的左右下拉列表示例
Dec 26 Javascript
canvas 绘制圆形时钟
Feb 22 Javascript
AngularJS表单验证功能
Oct 19 Javascript
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
JS装饰器函数用法总结
Apr 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调用shell的方法
2014/11/05 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
js图片上传的封装代码
2017/08/01 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
基于Django用户认证系统详解
2018/02/21 Python
python七夕浪漫表白源码
2019/04/05 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
Python装饰器用法与知识点小结
2020/03/09 Python
django API 中接口的互相调用实例
2020/04/01 Python
python三引号如何输入
2020/07/06 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
数控机械专业个人的自我评价
2014/01/02 职场文书
高校十八大报告感想
2014/01/27 职场文书
电子银行营销方案
2014/02/22 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
农业项目投资意向书
2015/05/09 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书