【发布时间】:2016-12-01 19:28:44
【问题描述】:
我的合并排序程序在理论上对于两个数值等效的数组看起来是正确的,但是返回的值不按顺序排列,而且根本不合适。我在合并列表的末尾收到三个零,甚至没有包含在任何数组中。
public class Merge_Sort
{
public static void main(String [] args)
{
int [] a1 = new int[10];
int [] b1 = {32, 26, 44, 87, 48, 51, 53, 89, 92, 1};
a1[0] = 12;
a1[1] = 36;
a1[2] = 45;
a1[3] = 52;
a1[4] = 48;
a1[5] = 24;
a1[6] = 29;
a1[7] = 98;
a1[8] = 23;
a1[9] = 32;
int i = 0, j = 0, k = 0;
int[] merge = new int[a1.length + b1.length];
while (i < a1.length && j < b1.length) {
if (a1[i] < b1[j]) {
merge[k] = a1[i];
i++;
} else {
merge[k] = b1[j];
j++;
}
k++;
}
for (int x : merge) {
System.out.println(x);
}
}
}
【问题讨论】:
标签: java array-merge