大佬们,我这算非递归归并排序吗?

2019-07-13 11:59:47 +08:00
 mara1
function mergeSort(array){
    if(array.length==1){
        return array;
    }
    for(let len = 2;len/2<=array.length;len*=2){
        for(let start=0;start<array.length;start+=len){
            sort(start,len,array)
        }
    }
    return array;
}
function sort(start,len,arr){
    let middle = start+ len/2;
    let left = arr.slice(start,middle);
    let right = arr.slice(middle,start+len);
    let res = [];
    while(left.length>0 && right.length>0){
        if(left[0]<right[0]){
            res.push(left[0])
            left.shift();
        }else{
            res.push(right[0]);
            right.shift();
        }
    }
    let replace = res.concat(left).concat(right);
    arr.splice(start,len,...replace);
}
let a = [3,1,0,9,8,11,12,6,4,7]

var result = mergeSort(a);
console.log("arr:",result);
1508 次点击
所在节点    程序员
3 条回复
guyeu
2019-07-13 14:27:24 +08:00
算。
doing1
2019-07-13 14:29:16 +08:00
是的
singleQ
2019-07-13 23:21:40 +08:00
这个是快牌

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX