マージソートプログラムは、理論的には2つの数値的に等価な配列を返しますが、返される値は順不同であり、適切ではありません。私は、マージされたリストの最後に3つのゼロを受け取り、配列のいずれにも含めません。マージソートが適切な値を返さない適切な値
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);
}
}
}
マージソートの詳細:http://www.geeksforgeeks.org/iterative-merge-sort/ – rafid059