原理:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归,以此达到整个数据变成有序序列。
var arr=[9,8,7,6,5,4];
console.log(quick(arr));
function quick(num){
if (num.length <= 1) {
return num;
}
var midindex=parseInt(num.length / 2);//数组长度除二取整得到中间索引
var midnum=num.splice(midindex,1);//splice中为从midindex处开始删除,删除1个元素,返回值为所删除元素,及取中间元素。
var left=[];//定义两个空数组存放所分的元素
var right=[];
for(var i=0;i<num.length;i++){
if(num[i]<midnum){
left.push(num[i]);
}else{
right.push(num[i]);
}
}
return quick(left).concat(midnum).concat(quick(right));
}