您的位置:首页 > Web前端 > JavaScript

javascript 快速排序算法

2016-02-26 15:01 441 查看
今天给大家介绍的是javascript中的快速排序算法。

快速排序:

1、通过数组长度,来找到数组中间的那个值(基准值)

2、分别拿数组中其他值和该值进行比较,如果小(大)于该基准值就直接添加到left数组中,如果大(小)于该基准值添加到right数组中,形成两个数组

3、利用递归分别对left和right进行相同的排序操作

4、最终判断arr的长度是否小于等于1,如果是:说明数组已经剩一个值了无需进行排序了,直接返回该数组

5、最终返回  left数组+基准值+right数组,就是你想要的排序结果

代码示例:

function quickSort( arr ){
if( arr.length <= 1 ){
return arr;
}
var num = Math.floor( arr.length / 2 );
var numValue = arr.splice( num, 1 );
var left = [];
var right = [];
for( var i = 0; i < arr.length; i ++ ){
if( arr[i] < numValue ){
left.push( arr[i] );
}else{
right.push( arr[i] );
}
}
return quickSort( left ).concat( [numValue], quickSort(right) );
}下周一正式开始新的前端开发工作,我也会陆陆续续更新自己在工作中或者在学习中遇到的问题的解决方案以及一些新的知识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息