Birleştirme Sıralaması özyinelemeli bir algoritmadır ve zaman karmaşıklığı tekrarlama ilişkisinin ardından ifade edilebilir.
T (n) = 2T (n / 2) + ɵ (n)
Yukarıdaki nüks, Nüks Ağacı yöntemi veya Master yöntemi kullanılarak çözülebilir. Master Metodunun II olması durumunda düşer ve nüksün çözümü ɵ (n log n) olur.
Birleştirme Sıralama zaman karmaşıklığı ity (nLogn) her 3 durumda da (en kötü, ortalama ve en iyi) birleştirme sıralama her zaman diziyi iki yarıya böler ve iki yarıyı birleştirmek için doğrusal zaman alır.
Giriş dizisini iki yarıya böler, kendisini iki yarıya çağırır ve ardından iki yarı yarıyı birleştirir. Merg () işlevi iki yarıyı birleştirmek için kullanılır. Birleştirme (arr, l, m, r), arr [l..m] ve arr [m + 1..r] 'nin sıralandığını ve iki sıralanmış alt diziyi bir araya getirdiğini varsayan anahtar işlemdir. Ayrıntılar için aşağıdaki C uygulamasını inceleyiniz.
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)
Diyagrama daha yakından bakarsak, dizinin boyut 1'e gelinceye kadar tekrarlı olarak iki yarıya bölündüğünü görebiliriz. Boyut 1 olduğunda, birleştirme işlemleri devreye girer ve dizinin tamamı dizinin sonuna kadar birleştirilmesi başlar. birleşti.