js快速排序的正确写法
前端小白一枚,学习js的时间不长,这里想说一说关于快速排序法的代码的正确写法,网上有很多,我只能说有些事不够准确的,没有考虑到数组里面重复出现元素的情况,请看看正确的代码显示
// 快速排序法
function quickSort(array){
if(array.length<=1){
return array;
}
var left=[];
var right=[];
var middleIndex=parseInt(array.length/2);
var middle=array.splice([middleIndex],1)[0];
for(var i=0; i<array.length;i++){
if(array[i]<middle){
left.push(array[i]);
}
if(array[i]>=middle){
right.push(array[i])
}
}
return quickSort(left).concat(middle,quickSort(left));
}
var a=[1,2,5,1,4,2,55,12,22];
quickSort(a);
console.log(a)
这里的关键是 splice方法返回并删除数组中的元素 ,这个是重点