مقدمه ای بر الگوریتم مرتبسازی ادغامی (Merge Sort)
در برنامهنویسی، الگوریتم مرتبسازی ادغامی یکی از الگوریتمهای مرتبسازی مهم است. این الگوریتم بر اساس تقسیم و حل مسئله عمل میکند و به شکل بازگشتی عمل میکند. در این مقاله، به بررسی الگوریتم مرتبسازی ادغامی و نحوه پیادهسازی آن در زبان برنامهنویسی C# میپردازیم.
الگوریتم مرتبسازی ادغامی
الگوریتم مرتبسازی ادغامی به شکل زیر عمل میکند:
- اگر طول آرایه یا لیست ورودی کوچکتر از 2 باشد، آن را به عنوان لیست مرتب شده در نظر بگیرید.
- در غیر این صورت، آرایه یا لیست را به دو نیمه تقسیم کنید.
- هر یک از نیمهها را به صورت بازگشتی مرتب کنید.
- نیمههای مرتب شده را با استفاده از عمل ادغام به هم وصل کنید.
پیادهسازی الگوریتم مرتبسازی ادغامی در سی شارپ
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# میتواند به ما در حل مسائل مرتبط با مرتبسازی کمک کند. در پایان توصیه می کنیم برای یادگیری هر چه بهتر این مطالب از پکیج کامل آموزش الگوریتم ها و ساختمان داده ها در سی شارپ استفاده کنید.