Сортування злиття - це рекурсивний алгоритм, і складність у часі може бути виражена наступним відношенням рецидиву.
T (n) = 2T (n / 2) + ɵ (n)
Вищезазначені рецидиви можуть бути вирішені або за допомогою методу дерева повторень або методу Master. Він підпадає у випадку, якщо II головного методу і рішення повторення є is (n log n).
Часова складність сортування об'єднань становить ɵ (nLogn) у всіх 3 випадках (найгірший, середній та найкращий), оскільки сортування злиття завжди ділить масив на дві половини та потрібен лінійний час для об'єднання двох половин.
Він розділяє вхідний масив на дві половини, називає себе двома половинами, а потім об'єднує дві відсортовані половинки. Функція merg () використовується для об'єднання двох половинок. Злиття (arr, l, m, r) є ключовим процесом, який передбачає, що arr [l..m] і arr [m + 1..r] сортуються і об'єднують два відсортовані підмасиви в один. Докладні відомості див. У наступній реалізації C.
MergeSort(arr[], l, r)
If r > l
1. Find the middle point to divide the array into two halves:
middle m = (l+r)/2
2. Call mergeSort for first half:
Call mergeSort(arr, l, m)
3. Call mergeSort for second half:
Call mergeSort(arr, m+1, r)
4. Merge the two halves sorted in step 2 and 3:
Call merge(arr, l, m, r)
Якщо ми детальніше подивимось на діаграму, то можемо побачити, що масив рекурсивно ділиться на дві половини, поки розмір не стане 1. Як тільки розмір стає 1, процеси злиття вступає в дію і починає об'єднувати масиви назад, поки повний масив не буде злилися.