zl程序教程

您现在的位置是:首页 >  Java

当前栏目

复杂排序---归并排序

2023-02-18 16:40:29 时间
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 = ~~(a.length / 2),
        left = a.slice(0, mid),
        right = a.slice(mid);
    return merge(mergeSort(left), mergeSort(right));
}