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 相关文章推荐
基于jquery的滚动鼠标放大缩小图片效果
Oct 27 Javascript
JS代码放在head和body中的区别分析
Dec 01 Javascript
JS构建页面的DOM节点结构的实现代码
Dec 09 Javascript
jQuery中queue()方法用法实例
Dec 29 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
Oct 12 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
Angular实现预加载延迟模块的示例
Oct 12 Javascript
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 Javascript
Vue自定义属性实例分析
Feb 23 Javascript
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
vue 接口请求地址前缀本地开发和线上开发设置方式
Aug 13 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
PHP define函数的使用说明
2008/08/27 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
PHP 防注入函数(格式化数据)
2011/08/08 PHP
Javascript call和apply区别及使用方法
2013/11/14 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
python实现绘制树枝简单示例
2014/07/24 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL