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函数从函数的构成开始
Aug 29 Javascript
jquery实现树形二级菜单实例代码
Nov 20 Javascript
jQuery实现ctrl+enter(回车)提交表单
Oct 19 Javascript
angularjs创建弹出框实现拖动效果
Aug 25 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
轮播图组件js代码
Aug 08 Javascript
js实现鼠标左右移动,图片也跟着移动效果
Jan 25 Javascript
vue使用drag与drop实现拖拽的示例代码
Sep 07 Javascript
实例分析js事件循环机制
Dec 13 Javascript
vue.js element-ui validate中代码不执行问题解决方法
Dec 18 Javascript
vue2.0实现音乐/视频播放进度条组件
Jun 06 Javascript
vue实现公共方法抽离
Jul 31 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中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
PHP处理会话函数大总结
2015/08/05 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
详解webpack+express多页站点开发
2017/12/22 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
详解vue axios二次封装
2018/07/22 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
药学专业大专生的自我评价
2013/12/12 职场文书
庆七一活动方案
2014/01/25 职场文书
卫生巾广告词
2014/03/18 职场文书
文秘自荐信
2014/06/28 职场文书
退学证明范本3篇
2014/10/29 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技