var quickSort =function(arr){
if(arr.length <=1){
return arr;//任何的递归都需要一个停止条件,这个是放到了第一位。
//这个条件的意思是:如果我这个数组,只有一个数了,那么我就不进行排序了,不比较了,返回这个数组。
};
var middleIndex =Math.floor(arr.length /2);//这个代表的是向下取整,这里是6/2=3,所以是第4个数225
var middleValue =arr.splice(middleIndex,1);//这个有点难,因为返回值是截取下来的数组,就是中间数
//但是你要知道的一点是,原来的数组虽然没有返回,但是他们已经截取了,他们被改变了。
var arrLeft =[];
var arrRight =[];
for(var i=0;i<arr.length;i++){
var item =arr[i];
item <middleValue?arrLeft.push(item):arrRight.push(item);
};
return quickSort(arrLeft).concat(middleValue,quickSort(arrRight));
};
var arr =[12,1,123,225,13,10,18,24];
arr =quickSort(arr);
console.log(arr);
快速排序
最新推荐文章于 2022-05-13 22:32:13 发布