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);