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生产批量批处理执行命令
Jul 28 Javascript
检测是否已安装 .NET Framework 3.5的js脚本
Feb 14 Javascript
JavaScript 实现类的多种方法实例
May 01 Javascript
使用JS读秒使用示例
Sep 21 Javascript
js 显示base64编码的二进制流网页图片
Apr 04 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
浅谈JS中的bind方法与函数柯里化
Aug 10 Javascript
js代码实现下拉菜单【推荐】
Dec 15 Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
使用node搭建自动发图文微博机器人的方法
Mar 22 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
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安全问题分析
2011/06/24 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
python3正则模块re的使用方法详解
2020/02/11 Python
区分python中的进程与线程
2020/08/13 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
中英文自我评价语句
2013/12/20 职场文书
土建资料员岗位职责
2014/01/04 职场文书
网络编辑求职信
2014/04/30 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Python内置数据结构列表与元组示例详解
2021/08/04 Python