前端是万能的

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

2019-06-10  本文已影响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 ]
上一篇 下一篇

猜你喜欢

热点阅读