`
fantasybei
  • 浏览: 37680 次
  • 性别: Icon_minigender_1
  • 来自: 农村进沪务工人员
社区版块
存档分类
最新评论

merge sort

J# 
阅读更多
function merge(array, p, q, r){
    var lArray = [], rArray = [];
    for(var i = p; i <= q; i++ ){
        lArray.push(array[i]);
    }
    for(var j = q+1; j <= r; j++){
        rArray.push(array[j]);
    }
    var m = 0, n = 0;
    for(var k = p; lArray[m] != null  && rArray[n] != null; k++){
        if(lArray[m] > rArray[n]){
            array[p++] = rArray[n++];
        }else{
            array[p++] = lArray[m++];
        }
    }
    if(lArray[m] == null){
        while(rArray[n]){
            array[p++] = rArray[n++];
        }
    }
    if(rArray[n] == null){
        while(lArray[m]){
            array[p++] = lArray[m++]; 
        }
    }
}

function mergeSort(A, p, r) {
    if(p < r){
        var middle = Math.floor((p+r)/2);
        mergeSort(A, p, middle);
        mergeSort(A, middle+1, r);
        merge(A, p, middle, r);
    }
}

var array = [3, 7, 1, 19, 5, 8, 2];
mergeSort(array, 0, array.length);
console.log(array);
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics