मर्ज सॉर्ट एक पुनरावर्ती एल्गोरिदम है और समय जटिलता को पुनरावृत्ति संबंध के रूप में व्यक्त किया जा सकता है।
T (n) = 2T (n / 2) + n (n)
उपरोक्त पुनरावृत्ति को पुनरावृत्ति ट्री विधि या मास्टर विधि का उपयोग करके हल किया जा सकता है। यह मास्टर विधि के मामले II में आता है और पुनरावृत्ति का समाधान n (एन लॉग एन) है।
मर्ज सॉर्ट की समय जटिलता सभी 3 मामलों (सबसे खराब, औसत और सर्वोत्तम) में ɵ (nLogn) है क्योंकि मर्ज सॉर्ट हमेशा सरणी को दो हिस्सों में विभाजित करता है और दो हिस्सों को विलय करने के लिए रैखिक समय लेता है।
यह इनपुट एरे को दो हिस्सों में बांटता है, खुद को दो हिस्सों के लिए कहता है और फिर दो हलकों को जोड़ देता है। दो हिस्सों को मर्ज करने के लिए मर्ग () फ़ंक्शन का उपयोग किया जाता है। मर्ज (गिरफ्तारी, l, m, r) वह महत्वपूर्ण प्रक्रिया है जो मानती है कि गिरफ्तार [l..m] और गिरफ्तारी [m + 1..r] को सॉर्ट किया जाता है और दो सॉर्ट किए गए उप-सरणियों को एक में मिला देता है। विवरण के लिए निम्नलिखित सी कार्यान्वयन देखें।
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 हो जाने पर, मर्ज प्रक्रियाएं आ जाती हैं और सरणियों को पूर्ण सरणी तक वापस विलय करना शुरू कर देती हैं। विलय होना।