Реалізація другого етапу
Приклад об’єднання двох відсортованих масивів на мові Java наведено нижче.
int[] a1 = new int[] {21, 23, 24, 40, 75, 76, 78, 77, 900, 2100, 2200, 2300, 2400, 2500};
int[] a2 = new int[] {10, 11, 41, 50, 65, 86, 98, 101, 190, 1100, 1200, 3000, 5000};
int[] a3 = new int[a1.length + a2.length];
int i=0, j=0;
for (int k=0; k a1.length-1) {
int a = a2[j];
a3[k] = a;
j++;
}
else if (j > a2.length-1) {
int a = a1[i];
a3[k] = a;
i++;
}
else if (a1[i] < a2[j]) {
int a = a1[i];
a3[k] = a;
i++;
}
else {
int b = a2[j];
a3[k] = b;
j++;
}
}
Тут:
- a1 і a2 – вихідні відсортовані масиви, які необхідно об’єднати;
- a3 – кінцевий масив;
- i та j – індекси поточних елементів масивів a1 і a2.
Перше і друге умова забезпечує те, що індекси не вийдуть за межі розміру масиву. Третій і четвертий блоки умов, відповідно, переміщують в результуючий масив меншого елемента.