কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে Merge Sort ইমপ্লিমেন্ট করার পদ্ধতি


Merge Sort

Merge Sort ডিভাইড-এন্ড-কনকার (divide-and-conquer) টাইপ সর্টিং অ্যালগরিদমের একটি উদাহরণ। Merge Sort-এর ইনপুট হলো কিছু এলিমেন্টের একটি অ্যারে, যেগুলো সাধারণত ছোট থেকে বড় ক্রমে সাজাতে হয়।

Merge Sort-এ অনুসরণ করতে হয় এমন ধাপগুলো

  • Merge Sort অ্যারেকে দুটি সাব-অ্যারেতে ভাগ করে, তারপর প্রতিটি অ্যারে আবার দুটি করে ভাগ করে, এভাবে চলতে থাকে যতক্ষণ না একক এলিমেন্টের অ্যারেগুলো বাকি থাকে। উদাহরণস্বরূপ, [4,7,5,9,1,3,8,2] অ্যারে একক এলিমেন্টের অ্যারে [4], [7], [5], [9], [1], [3], [8], [2]-এ ভাগ হয়।
  • এটি অ্যারেগুলো তুলনা করে জোড়া করে কনক্যাটেনেট করে শুরু করে। উদাহরণে, [4], [7] তুলনা করে কনক্যাটেনেট করা হয়, তারপর [5], [9] এবং এভাবে [4,7], [5,9], [1,3], [2,8] অ্যারেগুলো তৈরি হয়।
  • একই পদ্ধতিতে দুটি করে অ্যারে তুলনা করে কনক্যাটেনেট করা হয় বড় অ্যারে বানাতে। উদাহরণে [4,7] এবং [5,9] তুলনা করে [4,5,7,9] এবং [1,3] ও [2,8] থেকে [1,2,3,8] তৈরি হয়।
  • একই নিয়ম অনুযায়ী শেষের দুটি অ্যারে তুলনা করে ফাইনাল সর্টেড অ্যারে [1,2,3,4,5,7,8,9] পাওয়া যায়।

উদাহরণ

<html> <body> <script>    function mSort (array) {       if (array.length === 1) {       return array                            // return once we hit an array with a single item    }    const middle = Math.floor(array.length / 2) // get the middle item of the array rounded down    const left = array.slice(0, middle)         // items on the left side    const right = array.slice(middle)           // items on the right side    document.write(middle);    return merge(       mSort(left),       mSort(right)    )    }    // compare the arrays item by item and return the concatenated result    function merge (left, right) {       let result = []       let leftIndex = 0       let rightIndex = 0       while (leftIndex < left.length && rightIndex < right.length) {          if (left[leftIndex] < right[rightIndex]) {          result.push(left[leftIndex])          leftIndex++          document.write("</br>");                  } else {          result.push(right[rightIndex])          rightIndex++             }    }    return result.concat(left.slice(leftIndex)).concat(right.slice(rightIndex))    }    const list = [4,7,5,9,1,3,8,2]    document.write(mSort(list));    </script>    </body>    </html>

আউটপুট

1,2,3,4,5,7,8,9

  1. জাভাস্ক্রিপ্টে Array.prototype.sort() মেথড

  2. জাভাস্ক্রিপ্টে অ্যারে রিডিউস করা (reduce)

  3. জাভাস্ক্রিপ্টে মার্জ সর্ট রিকার্সিভ ইমপ্লিমেন্টেশন

  4. C++ প্রোগ্রাম: মার্জ সর্ট বাস্তবায়ন