JS实现快速排序
来源:互联网 发布:网络推广经理 编辑:程序博客网 时间:2024/06/02 02:03
快速排序也采用了分治的策略,它的基本思想是:
1.先从序列中取出一个数作为基准数
2.将序列中比基准数大的数放在基准数的右边,小于或等于基准数的数放在基准数的左边
3.再对左右区间重复第二步,直到各区间只有一个数。
举例:对[20 40 35 28 60 48 55 50 17 67]进行快速排序
第一步:选择中间数60作为基准数(基准可以任意选取)
20 40 35 28 【60】 48 55 50 17 67
第二步:按顺序将每个数与基准数比较,小的放左边,大的放右边
[20 40 35 28 48 55 50 17] 【60】 [67]
第三步:不断重复一二步
[20 40 35 【28】 48 55 50 17] 60 [67]
[20 17] 【28】 [40 35 48 55 50] 60 67
17 20 28 [40 35 【48】 55 50] 60 67
17 20 28 [40 35] 【48】 [55 50] 60 67
1.先从序列中取出一个数作为基准数
2.将序列中比基准数大的数放在基准数的右边,小于或等于基准数的数放在基准数的左边
3.再对左右区间重复第二步,直到各区间只有一个数。
举例:对[20 40 35 28 60 48 55 50 17 67]进行快速排序
第一步:选择中间数60作为基准数(基准可以任意选取)
20 40 35 28 【60】 48 55 50 17 67
第二步:按顺序将每个数与基准数比较,小的放左边,大的放右边
[20 40 35 28 48 55 50 17] 【60】 [67]
第三步:不断重复一二步
[20 40 35 【28】 48 55 50 17] 60 [67]
[20 17] 【28】 [40 35 48 55 50] 60 67
17 20 28 [40 35 【48】 55 50] 60 67
17 20 28 [40 35] 【48】 [55 50] 60 67
17 20 28 35 40 48 50 55 60 67
<script> function quickSort(arr){ if(arr.length<=1) {return arr;} var baseIndex=Math.floor(arr.length/2); var base=arr.splice(baseIndex,1)[0]; var left_arr=[],right_arr=[]; for(var i=0,len=arr.length;i<len;i++){ if(arr[i]<=base){ left_arr.push(arr[i]); } else{ right_arr.push(arr[i]); } } return quickSort(left_arr).concat([base],quickSort(right_arr)); } var array=[20,40,35,28,60,48,55,50,17,67]; var arr=quickSort(array); document.write(arr+'<br>'); </script>
0 0
- JS实现快速排序
- js实现快速排序
- JS实现快速排序
- JS实现快速排序
- js实现快速排序
- JS 实现快速排序
- JS实现快速排序
- JS实现快速排序
- Js实现快速排序
- js实现快速排序
- 【算法】快速排序【JS实现】
- 快速排序-JS代码实现
- JS实现快速排序(QuickSort)
- js实现冒泡排序和快速排序
- 【算法】随机化快速排序【JS实现】
- JS快速排序法原理及实现
- 快速排序的js递归实现
- 冒泡排序, 简单选择排序, 插入排序, 希尔排序, 快速排序 js 实现
- BCB消息消息机制
- iOS-Core-Animation-Advanced-Techniques(五)
- MapReduce编程之实现多表关联
- 细数1款国内外贸开源商城系统和15款国外的英文开源商城系统
- 关于outlook配置错误的解决方法
- JS实现快速排序
- servlet 控制页面显示
- Maven实战(三)Eclipse构建Maven项目
- C 内存管理那些事儿
- 【译】VisionMobile:2015 IOT大趋势(六)未来在此,开发者拥抱IoT
- 这些哭笑不得的情景,每个程序员都可能面对
- PATBasic——1016. 部分A+B (15)
- VS2012 编译clang源码
- Maven实战(四)生命周期