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函数中的arguments参数
Aug 01 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
Javascript解析URL方法详解
Dec 05 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
Nov 04 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
Dec 20 Javascript
js字符串与Unicode编码互相转换
May 17 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
Vue中使用Sortable的示例代码
Apr 07 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
Apr 10 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
react antd实现动态增减表单
Jun 03 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中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
两个php日期控制类实例
2014/12/09 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
分享别人写的一个小型js框架
2007/08/13 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
Python操作MySQL简单实现方法
2015/01/26 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
浅析python中while循环和for循环
2019/11/19 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
Java基础面试题
2012/11/02 面试题
校园网站的创业计划书范文
2013/12/30 职场文书
企业节能减排实施方案
2014/03/19 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
法制宣传标语集锦
2014/06/25 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
php实现自动生成验证码的实例讲解
2021/11/17 PHP
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏
OpenFeign实现远程调用
2022/08/14 Java/Android