الگوریتم مرتب‌سازی ادغامی (Merge Sort) در سی شارپ

مقدمه ای بر الگوریتم مرتب‌سازی ادغامی (Merge Sort)

در برنامه‌نویسی، الگوریتم مرتب‌سازی ادغامی یکی از الگوریتم‌های مرتب‌سازی مهم است. این الگوریتم بر اساس تقسیم و حل مسئله عمل می‌کند و به شکل بازگشتی عمل می‌کند. در این مقاله، به بررسی الگوریتم مرتب‌سازی ادغامی و نحوه پیاده‌سازی آن در زبان برنامه‌نویسی C# می‌پردازیم.

الگوریتم مرتب‌سازی ادغامی

الگوریتم مرتب‌سازی ادغامی به شکل زیر عمل می‌کند:

  1. اگر طول آرایه یا لیست ورودی کوچکتر از 2 باشد، آن را به عنوان لیست مرتب شده در نظر بگیرید.
  2. در غیر این صورت، آرایه یا لیست را به دو نیمه تقسیم کنید.
  3. هر یک از نیمه‌ها را به صورت بازگشتی مرتب کنید.
  4. نیمه‌های مرتب شده را با استفاده از عمل ادغام به هم وصل کنید.

پیاده‌سازی الگوریتم مرتب‌سازی ادغامی در سی شارپ

 
public static void MergeSort(int[] array)
{
    if (array.Length < 2)
        return;

    int mid = array.Length / 2;
    int[] left = new int[mid];
    int[] right = new int[array.Length - mid];

    for (int i = 0; i < mid; i++)
        left[i] = array[i];

    for (int i = mid; i < array.Length; i++)
        right[i - mid] = array[i];

    MergeSort(left);
    MergeSort(right);
    Merge(array, left, right);
}

public static void Merge(int[] array, int[] left, int[] right)
{
    int i = 0, j = 0, k = 0;

    while (i < left.Length && j < right.Length)
    {
        if (left[i] <= right[j])
            array[k++] = left[i++];
        else
            array[k++] = right[j++];
    }

    while (i < left.Length)
        array[k++] = left[i++];

    while (j < right.Length)
        array[k++] = right[j++];
}
 

نتیجه گیری

در این مقاله، الگوریتم مرتب‌سازی ادغامی را معرفی کرده و نحوه پیاده‌سازی آن در زبان برنامه‌نویسی C# را بررسی کردیم. الگوریتم مرتب‌سازی ادغامی یکی از الگوریتم‌های مرتب‌سازی کارآمد است که بر اساس تقسیم و حل مسئله عمل می‌کند و می‌تواند بهبود عملکرد برنامه‌ها در مورد مرتب‌سازی داده‌ها ایجاد کند. پیاده‌سازی صحیح الگوریتم مرتب‌سازی ادغامی در زبان C# می‌تواند به ما در حل مسائل مرتبط با مرتب‌سازی کمک کند. در پایان توصیه می کنیم برای یادگیری هر چه بهتر این مطالب از پکیج کامل آموزش الگوریتم ها و ساختمان داده ها در سی شارپ استفاده کنید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!

اهمیت الگوریتم‌ها و ساختارهای داده در برنامه‌نویسی

فهرست مطلب: بهبود عملکردحل مسائل پیچیدهکد قابل فهم و قابل نگهداریمقیاس‌پذیریمشکلات حافظه و منابع مقدمه ای بر الگوریتم‌ها و ساختارهای…

بیشتر بخوانید

ساختار داده‌ استک (Stack) کاربردهای آن در برنامه‌نویسی

فهرست مطلب: استک و عملکرد آنکاربردهای استکمقدمه ای بر ساختار داده استک و کاربردهای آن استک یکی از ساختارهای داده‌ای…

بیشتر بخوانید

الگوریتم‌های بازگشتی و الگوریتم‌های دینامیک و پیاده‌سازی آن‌ها در سی شارپ

فهرست مطلب: الگوریتم‌های بازگشتیپیاده‌سازی الگوریتم‌ های بازگشتی در سی شارپ توضیحاتالگوریتم‌های دینامیکپیاده‌سازی الگوریتم‌های دینامیک در سی شارپتوضیحات مقدمه ای بر الگوریتم‌های…

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.