js-面试中的快速排序
/* 思路: 1.找一个基准点 2.建立2个数组,分别存储左边和右边的数据 3.利用递归进行下次比较 */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function
quickSort(arr){
if
(arr.length<=1){
return
arr;
}
//1.找一个中间基准点
var
num=Math.floor(arr.length/2);
var
numValue=arr.splice(num,1);
//从数组中拿取该值
var
left=[],right=[];
for
(
var
i=0;i<arr.length;i++){
if
(arr[i]>=numValue){
right.push(arr[i]);
}
else
{
left.push(arr[i]);
}
}
return
quickSort(left).concat([numValue],quickSort(right));
}
|