This C# Program Performs Merge Sort. A merge sort is a sorting algorithm with complexity of O(nlogn). It is used for sorting numbers, structure, files.

Here is source code of the C# Program to Perform Merge Sort. The C# program is successfully compiled and executed with Microsoft Visual Studio. The program output is also shown below.

`/*`

`* C# Program to Perform Merge Sort`

`*/`

using System;

using System.Collections.Generic;

using System.Text;

`namespace prog`

`{`

`class Program`

`{`

static public void mergemethod(int [] numbers, int left, int mid, int right)

`{`

int [] temp = new int[25];

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 (numbers[left] <= numbers[mid])

temp[tmp_pos++] = numbers[left++];

`else`

temp[tmp_pos++] = numbers[mid++];

`}`

while (left <= left_end)

temp[tmp_pos++] = numbers[left++];

while (mid <= right)

temp[tmp_pos++] = numbers[mid++];

for (i = 0; i < num_elements; i++)

`{`

numbers[right] = temp[right];

`right--;`

`}`

`}`

static public void sortmethod(int [] numbers, int left, int right)

`{`

int mid;

if (right > left)

`{`

mid = (right + left) / 2;

sortmethod(numbers, left, mid);

sortmethod(numbers, (mid + 1), right);

mergemethod(numbers, left, (mid+1), right);

`}`

`}`

static void Main(string[] args)

`{`

int[] numbers = { 3, 8, 7, 5, 2, 1, 9, 6, 4 };

int len = 9;

Console.WriteLine("MergeSort :");

sortmethod(numbers, 0, len - 1);

for (int i = 0; i < 9; i++)

Console.WriteLine(numbers[i]);

Console.Read();

`}`

`}`

`}`

Here is the output of the C# Program:

MergeSort : 1 2 3 4 5 6 7 8 9

**Sanfoundry Global Education & Learning Series – 1000 C# Programs.**

If you wish to look at all C# Programming examples, go to 1000 C# Programs.