美文网首页前端是万能的
两个有序的数组重新排序成一个有序的数组

两个有序的数组重新排序成一个有序的数组

作者: 肆意木 | 来源:发表于2019-06-10 11:44 被阅读4次

    题目要求:两个有序的数组重新排序成一个有序的数组,写出两种,一种用concat连接,再用sort排序;另一种要求不使用数组的方法

    1. 用 JS 的数组方法
    var arr1 = [2,4,9,12,13,61,78];
    var arr2 = [1,3,5,12,13,14,16];
    function arrNum(a,b) {
        return a-b;
    }
    var arr = arr1.concat(arr2).sort(arrNum)
    console.log(arr);           //[ 1, 2, 3, 4, 5, 9, 12, 12, 13, 13, 14, 16, 61, 78 ]
    
    1. 不用 JS 的方法
    var arr1 = [2,4,9,12,13,61,78];
    var arr2 = [1,3,5,12,13,14,16];
    var arr3 = [];
    for(var i=0,j=0;i <= arr1.length,j <= arr2.length;){
        if(arr1.length === 0){
            arr3 = arr3.concat(arr2)
            i++
        }else if(arr2.length === 0){
            arr3 = arr3.concat(arr1)
            j++
        }else {
            if(arr1[i] < arr2[j]){
                arr3.push(arr1[i])
                arr1 = arr1.slice(1)
            }else {
                arr3.push(arr2[j])
                arr2 = arr2.slice(1)
            }
        }
    }
    console.log(arr3)          //[ 1, 2, 3, 4, 5, 9, 12, 12, 13, 13, 14, 16, 61, 78 ]
    

    相关文章

      网友评论

        本文标题:两个有序的数组重新排序成一个有序的数组

        本文链接:https://www.haomeiwen.com/subject/jugwtctx.html