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