دانلود سورس مرتب سازی ادغامی با سی شارپ #C

دانلود سورس مرتب سازی ادغامی با سی شارپ #C
این برنامه که در محیط کنسول سی شارپ نوشته شده است، عناصر یک آرایه بطول کمتر از 100 را میگیرد و آنها را به روش مرتب سازی ادغامی (merge sort) به ترتیب صعودی مرتب میکند.
در این سورس کد ابتدا کاربر طول آرایه را وارد می کند (کمتر از 100 ) . سپس عناصر آرایه را وارد می کند و در آخر برنامه با استفاده از جستجوی ادغامی آرایه را مرتب و نمایش می دهد .
اصل برنامه را می توانید در پایین صفحه دانلود کنید.
در زیر سورس کد برنامه را میبینید که می توانید در هر نسخه ی ویژوال استودیو از آن بهره بگیرید:
using System;
using System.Collections.Generic;
using System.Text;
namespace sortMerge
{
class mergeSort
{
// array of integers to hold values
private int[] a = new int[100];
private int[] b = new int[100];
// number of elements in array
private int x;
// Merge Sort Algorithm
public void sortArray()
{
m_sort(0, x - 1);
}
public void m_sort(int left, int right)
{
int mid;
if (right > left)
{
mid = (right + left) / 2;
m_sort(left, mid);
m_sort(mid + 1, right);
merge(left, mid + 1, right);
}
}
public void merge(int left, int mid, int right)
{
int i, left_end, num_elements, tmp_pos;
left_end = mid - 1;
tmp_pos = left;
num_elements = right - left + 1;
while ((left <= left_end) && (mid <= right))
{
if (a[left] <= a[mid])
{
b[tmp_pos] = a[left];
tmp_pos = tmp_pos + 1;
left = left + 1;
}
else
{
b[tmp_pos] = a[mid];
tmp_pos = tmp_pos + 1;
mid = mid + 1;
}
}
while (left <= left_end)
{
b[tmp_pos] = a[left];
left = left + 1;
tmp_pos = tmp_pos + 1;
}
while (mid <= right)
{
b[tmp_pos] = a[mid];
mid = mid + 1;
tmp_pos = tmp_pos + 1;
}
for (i = 0; i < num_elements; i++)
{
a[right] = b[right];
right = right - 1;
}
}
public static void Main()
{
// Instantiate an instance of the class
mergeSort mySort = new mergeSort();
Console.WriteLine(" ************ WWW.SourceCodes.ir ************ ");
Console.WriteLine("___________________________________________________");
// Get the number of elements to store in the array
Console.Write(" Number of elements in the array (less than 100) : ");
string s = Console.ReadLine();
mySort.x = Int32.Parse(s);
// Array header
Console.WriteLine("");
Console.WriteLine("-----------------------");
Console.WriteLine(" Enter array elements ");
Console.WriteLine("-----------------------");
// Get array elements
for (int i = 0; i < mySort.x; i++)
{
Console.Write("<{0}> ", i + 1);
string s1 = Console.ReadLine();
mySort.a[i] = Int32.Parse(s1);
}
// Sort the array
mySort.sortArray();
// Output sorted array
Console.WriteLine("");
Console.WriteLine("-----------------------");
Console.WriteLine(" Sorted array elements ");
Console.WriteLine("-----------------------");
for (int j = 0; j < mySort.x; j++)
{
Console.WriteLine(mySort.a[j]);
}
// Here to stop app from closing
Console.WriteLine(" Press Return to exit.");
Console.Read();
}
}
}
اکنون سورس پروژه mergesort را به صورت رایگان دانلود کنید
حجم فایل :40 KB
باسلام ممنون از مطلبتون بااجازتون مطلب رو کپی کردم ..تشکر از سایت مفیدتون