মার্জ বাছাই একটি পুনরাবৃত্তির অ্যালগরিদম এবং সময়ের জটিলতা নিম্নলিখিত পুনরাবৃত্তির সম্পর্ক হিসাবে প্রকাশ করা যেতে পারে।
টি (এন) = 2 টি (এন / 2) + ɵ (এন)
উপরোক্ত পুনরাবৃত্তিটি পুনরাবৃত্তি ট্রি পদ্ধতি বা মাস্টার পদ্ধতি ব্যবহার করে সমাধান করা যেতে পারে। এটি দ্বিতীয় মাস্টার পদ্ধতির ক্ষেত্রে এবং পুনরাবৃত্তির সমাধান ɵ (n লগ এন) হয়।
মার্জ বাছাইয়ের সময় জটিলতা n (এনলগন) সমস্ত 3 ক্ষেত্রে (সবচেয়ে খারাপ, গড় এবং সেরা) হিসাবে মার্জ করা বাছাই সর্বদা অ্যারেটিকে দুই ভাগে ভাগ করে এবং দুটি অংশকে একীভূত করতে রৈখিক সময় নেয়।
এটি ইনপুট অ্যারেটিকে দুটি অংশে ভাগ করে, দুটি অংশের জন্য নিজেকে কল করে এবং পরে দুটি সাজানো অর্ধেককে একত্রিত করে। মার্জ () ফাংশনটি দুটি অংশকে মার্জ করার জন্য ব্যবহৃত হয়। মার্জ (আরআর, এল, এম, আর) হ'ল মূল প্রক্রিয়া যা ধরে নিয়েছে যে আরার [এল..এম] এবং অ্যারে [এম + ১.আর] বাছাই করা হয়েছে এবং দুটি সাজানো সাব-অ্যারে এক সাথে একীভূত করা হয়েছে। বিশদ জন্য নিম্নলিখিত সি বাস্তবায়ন দেখুন।
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 হয়ে যায়, মার্জ প্রক্রিয়াগুলি ক্রিয়াতে আসে এবং সম্পূর্ণ অ্যারে না হওয়া পর্যন্ত অ্যারেগুলিকে আবার মার্জ করা শুরু করে মার্জ হয়েছে।