js归并排序

js归并排序   
function mergeSort (arr){

if (arr.length < 2){
//控制语句,结束递归
return arr;
}
var middle = Math.floor(arr.length/2);
var left = arr.slice(0, middle);
var right = arr.slice(middle);
return merge(mergeSort(left), mergeSort(right))
}
function merge(left, right){
var result = [];
var num;
while (left.length && right.length){
if(left[0] > right[0]){
num = right.shift();
result.push(num);
} else {
num = left.shift();
result.push(num);
}
}
return result.concat(left, right);
}

 


先把大数组分为只有一个数的数组,再两两比较,组成一个新的数组,不断的比较再进行组合,最后成为一个数组

 

 

posted @ 2019-03-07 14:46  那个村  阅读(328)  评论(0)    收藏  举报