java - 为什么我的合并 2 个整数数组的 Java 程序只在某个点给出正确的输出?

标签 java arrays sorting merge

我有这两个数组:

数组A [-5, -4, -3, -2, -1, 6, 7, 8, 9, 10, 11] 数组B [-33, -22, -11, 44, 55, 66, 77, 88]

如您所见,数组 A 和数组 B 均已排序。我必须将它们合并到应该排序的第三个数组(数组C)中。 (虽然我不能使用任何数组排序函数)

这是我的 while 循环:

 int[] c = new int[a.length + b.length];
   int aCount = 0;
   int bCount = 0;
   int cIndex = 0;

   while (aCount < a.length && bCount < b.length) {
      if (a[aCount] < b[bCount]) {
         c[cIndex] = a[aCount];
         cIndex++;
         aCount++;
      }
      else {
         c[cIndex] = b[bCount];
         cIndex++;
         bCount++;
      }
   }

这是我的输出:

[-33, -22, -11, -5, -4, -3, -2, -1, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0]

在达到 11 之前它都可以正常工作,但之后它只显示 0,而它应该是 44,55,66,77,88。

我错过了什么?

最佳答案

您只需将两个数组合并到到达数组 a 末尾的点。之后 while 循环中断。您必须插入另一个数组的剩余值。

int[] tmp = (aCount == a.length ? b : a);
int ct = (aCount == a.length ? bCount : aCount);

for(; ct < tmp.length ; ct++)
     c[cIndex++] = temp[ct];

关于java - 为什么我的合并 2 个整数数组的 Java 程序只在某个点给出正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541807/

相关文章:

对本地 apache 服务器的 Java http 请求 - UnknownHostException

java - 从 XML 读取文本时如何忽略标签?

java - 对 ArrayList 中的对象进行排序会产生意想不到的结果

java - JSF 表单提交问题

java - 使用 fragment 和 Activity 之间的共享首选项

Ruby Twitter 数组问题

C++,没有 <vector> 的对象数组

android - 如何在flutter中追加两个列表

使用 Math.abs(diff) 排序时出现 Java 意外 IllegalArgumentException

string - 在实现 insert() 算法时确定字符串值