Сортування злиттям: алгоритм, переваги і особливості

Реалізація другого етапу

Приклад об’єднання двох відсортованих масивів на мові 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.

Перше і друге умова забезпечує те, що індекси не вийдуть за межі розміру масиву. Третій і четвертий блоки умов, відповідно, переміщують в результуючий масив меншого елемента.