> For the complete documentation index, see [llms.txt](https://phitron.gitbook.io/algorithm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://phitron.gitbook.io/algorithm/merge-sort/_-merge-two-sorted-arrays.md).

# মডিউল ২৩\_১ঃ Merge Two Sorted Arrays

আমরা সর্ট করার আগে দুইটা সর্টেড এ্যারেকে কিভাবে merge করা যায় সেটা নিয়ে চিন্তা করি।

ধরি,

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FIHeT5sxDZehif9dIHp6P%2Fimage.png?alt=media&amp;token=3dd5be04-0fca-467f-9477-408916cc3441" alt=""><figcaption></figcaption></figure>

দুইটা এ্যারে আছে সর্টেড। এবার এদেরকে merge করে নতুন এ্যারে বানাইতে হবে। তাহলে সেটা কিভাবে করা যায়।

এই ক্ষেত্রে আমরা প্রথমে ফার্স্ট এ্যারে এর সমান করে L একটি এ্যারে বানাবো ও ফার্স্ট এ্যারেকে সেই L এ কপি করবো। সেইম ভাবে সেকেন্ড  এ্যারে এর জন্য R একটি এ্যারে বানাবো তারপর সেই সেকেন্ড এ্যারেকে R এ কপি করবো।

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FeJq55BtmXMw0CXDHNDvH%2Fimage.png?alt=media&amp;token=ed8d1c8d-5c4b-4cac-8a3b-05454760807f" alt=""><figcaption></figcaption></figure>

এবার দুইটা পয়েন্টার সেট করবো। একটা পয়েন্টা i L এ্যারে এর ফার্স্ট ইন্ডেক্সে আরেকটা পয়েন্টার j R এ্যারে এর ফার্স্ট ইন্ডেক্সে সেট করবো। আর একটা এ্যারে নিবো L+R সাইজের যেখানে merge করা এ্যারেটা থাকবে।

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FB7kHmmISulT3dq1ESner%2Fimage.png?alt=media&amp;token=a3bb7efe-ed72-4556-8ad1-6d21a57c55a8" alt=""><figcaption></figcaption></figure>

এবার i তম এলিমেন্ট এর সাথে j তম এলিমেন্টকে কম্পেয়ার করবো। যদি i তম এলিমেন্ট ছোট হয় তাহলে আন্সার এ্যারেতে i তম এলিমেন্ট বসিয়ে দিবো আর i এর ভ্যালু ১ করে বাড়িয়ে দিবো। আর যদি j তম এলিমেন্ট ছোট হয় তাহলে j এর ভ্যালু আন্সার এ্যারেতে বসিয়ে দিবো আর j এর ভ্যালু ১ করে বাড়িয়ে দেবো।

উদাহরণ হিসেবে,

প্রথমে i = 0, j = 0

L\[i]< R\[j]

তাই, ans\[0] = L\[i]

i++\[i = 1]

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FY9G7ymQMp5I5oEEPfgkt%2Fimage.png?alt=media&amp;token=67c4eb17-cc26-441d-a3a3-ae46a3d5d334" alt=""><figcaption></figcaption></figure>

এভাবে পুরো প্রসেসটা আগাতে থাকবে ও শেষ অব্দি ফাইনাল এ্যারেটি হবে

<figure><img src="https://1548341763-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjliRFwU9cGQFGljHYgOZ%2Fuploads%2FAEL4J8KcTBhYcny4lyuY%2Fimage.png?alt=media&amp;token=a3f2f6c5-dc67-4a5c-8450-8083d00b7020" alt=""><figcaption></figcaption></figure>
