js实现归并算法

function merge(left, right) {
       var tmp = [];
       while (left.length && right.length) {
           if (left[0] < right[0])
               tmp.push(left.shift());
           else
               tmp.push(right.shift());
       }
       return tmp.concat(left, right);
   }

   function mergeSort(a) {
       if (a.length === 1)
           return a;

       var mid = Math.floor(a.length / 2);
       var left = a.slice(0, mid);
       var right = a.slice(mid);
       return merge(mergeSort(left),mergeSort(right));//[49][38]\[65][97]\[76][13]\[27][49]
   }

测试;
var arr = [49, 38, 65, 97, 76, 13, 27, 49,21];
mergeSort(arr);

猜你喜欢

转载自blog.csdn.net/qq_26102281/article/details/88769168