实现2个排好序的子序列合并

Posted 小董斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现2个排好序的子序列合并相关的知识,希望对你有一定的参考价值。

数组a,b为已排序好的升序序列。

思路:1. 将a,b数组copy到一个新的数组c中(数组c的长度为a,b之和)

   2. 在c中以数组a为基准,当b中的数值小于a的时候,a中以后数值向后移1位,然后把当前b的值赋值过来。

具体实现:

public static int[] sort(int[] a, int[] b) {

        // 将a,b数组copy到数组c中
        int[] c = new int[a.length + b.length];
        System.arraycopy(a, 0, c, 0, a.length);
        System.arraycopy(b, 0, c, a.length, b.length);

        int i = 0, j = a.length, k;
        while (i < j) {
            if (j < c.length && c[i] > c[j]) {
                int tem = c[j];
                for (k = j; k > i; k--) {
                    c[k] = c[k - 1];
                }
                c[i] = tem;
                i++;
                j++;
            } else {
                i++;
            }
        }

        return c;
    }

 

以上是关于实现2个排好序的子序列合并的主要内容,如果未能解决你的问题,请参考以下文章

将两个排好序的序列合并成一个(指针和数组分别实现)

第四章实践

算法第四章实践报告

算法第四章实践报告

在python中,如i=

算法第4章实践报告