快速排序原理
2015-08-26 10:36
501 查看
var arr=[5,2,4,7,6,3,1,0,8]; function quickSort(arr){ if(arr.length<=1){ return arr; } var baseInex=Math.floor(arr.length/2); var base=arr.splice(baseInex,1); var left=[]; var right=[]; for(var i=0;i<arr.length;i++){ if(arr[i]<base){ left.push(arr[i]) }else{ right.push(arr[i]) } } return quickSort(left).concat([base],quickSort(right));} alert(quickSort(arr));
递归过程:
“+”看作concat()
quickSort([1,2,3,4,5])+[6]+quickSort([7,8,9]); quickSort([1,2])+[3]+quickSort([4,5])+[6]+quickSort([7])+[8]+quickSort([9]); quickSort([])+[1]+quickSort([2])+[3]+quickSort([])+[4]+quickSort([5])+[6]+[7]+[8]+[9] []+[1]+[2]+[3]+[]+4+[5]+[6]+[7]+[8]+[9]
原文地址:http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html
相关文章推荐
- zoj2112
- PHP查询数据库中满足条件的记录条数(二种实现方法)
- ORA-00904: "STUDENTNUMBER": 标识符无效
- javascript--QUnit【javascript单元测试框架】
- HTTP头字段总结
- NOI系列赛中 C++容器使用总结
- contourArea函数
- HDU 1171 Big Event in HDU (由01背包演变的水题)
- UNIX网络编程0 IP头,TCP头,UDP头,MAC帧头定义
- app上传 需要的icon
- ecshop 分页
- UVA-1347 Tour
- C语言判断字符是否为可打印字符的方法
- eclipse java中路径问题
- 生命不易
- 【POJ2031】【最小生成树】【g++ f c++ lf】
- hdu 4628 Pieces 状态压缩DP
- 小议:Site Collection中SharePoint Publishing Feature无法激活的解决方案
- 自定义类似Gridview 不同行列数不同 的显示控件
- js自动闭合html标签,自动补全html标记