如何使用我的解决方案在java中正确实现数组的合并排序?

xdnvmnnf  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(174)

这个解决方案对我来说很好,但我有个问题。当我调试我的程序时,我注意到例如对于这个输入(当我测试一个程序正确工作时)->int[]arr={1,3};int[]arr1={2,4};由于某种原因,我看到第一个数组的索引在增加,调试器显示在同一阶段,数组超出了范围。这个程序也适用于此,但我想知道如何在理论上是可能的,以解决这个或它没有意义,一切正常工作?我还尝试了if()的各种检查,但都没有解决问题。我希望我给你带来了问题的本质。

public static int[] mergeArr(int[] arr1, int[] arr2) {
         int[] result = new int[arr1.length + arr2.length];
          int i = 0;
    int j = 0;
    int k = 0;
    while (i < arr1.length && j < arr2.length) {
           if (arr1[i] < arr2[j]) {
                result[k++] = arr1[i];
                i++;
            } else {
                result[k++] = arr2[j];
                j++;
            }
                System.arraycopy(arr1, i, result, k, arr1.length - i);
                System.arraycopy(arr2, j, result, k, arr2.length - j);
    }
        return result;
    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题