js 合并两个有序数组 成一个有序数组

将两个有序数组合并成一个有序数组,假设两个数组,a和b合并成c.

我的想法是,以b数组作为参照,从下标0 开始 逐一对比a数组和b数组的每个元素大小,将小的push到c数组,然后下边加一,再进行匹配对比,(如有相同的元素,那么将b元素放入数组,两个数组下标同时加一),截止到某一个数组的最后一个元素,将另一个数组的剩余的元素,拼接到c数组。

具体代码如下:

   var a = [1];

    var b = [0];

    var c = [];

    var i = 0;

    var j = 0;

    function test() {

        debugger;

        if (b[j] < a[i]) {

            c.push(b[j]);

            j++;

            if (j < b.length) {

                test()

            } else {

                c = c.concat(a.slice(i, a.length))

            }

        } else if (b[j] == a[i]) {

            c.push(b[j]);

            i++;

            j++;

            if (j < b.length) {

                test();

            } else {

                c = c.concat(a.slice(i, a.length))

            }

        } else {

            if (i < a.length) {

                c.push(a[i]);

                i++;

                test()

            } else {

                c = c.concat(b.slice(j, b.length))

            }

        }

        console.log(c)

    }

    test()

你可能感兴趣的:(js 合并两个有序数组 成一个有序数组)