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/jquery获取地址栏url参数的方法
Mar 05 Javascript
JS截取url中问号后面参数的值信息
Apr 29 Javascript
JavaScript数值转换的三种方式总结
Jul 31 Javascript
浅析js中substring和substr的方法
Nov 09 Javascript
javascript类型系统 Window对象学习笔记
Jan 07 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
JS实现数组按升序及降序排列的方法
Apr 26 Javascript
ES6学习教程之对象字面量详解
Oct 09 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
Dec 09 Javascript
浅析Vue 和微信小程序的区别、比较
Aug 03 Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 Javascript
详细分析vue表单数据的绑定
Jul 20 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
Js获取事件对象代码
2010/08/05 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
python中迭代器(iterator)用法实例分析
2015/04/29 Python
python 中split 和 strip的实例详解
2017/07/12 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
django session完成状态保持的方法
2018/11/27 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Django更新models数据库结构步骤
2020/04/01 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
日本航空官方网站:JAL
2019/06/19 全球购物
什么是方法的重载
2013/06/24 面试题
学校安全工作制度
2014/01/19 职场文书
教师节标语大全
2014/10/07 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android