C# program to sort an array using merge sort

Here, we are going to learn how to sort an array using merge sort In C#?
Submitted by Nidhi, on November 07, 2020

Here, we will sort an integer array using merge sort.

Merge Sort: MergeSort is the divide and conquer algorithm, here we divide the array into two half's and then merge two sorted halves. Here we used recursion to sort integer array.

Program:

The source code to sort an integer array using merge sort is given below. The given program is compiled and executed successfully on Microsoft Visual Studio.

//C# program to sort an array using merge sort

using System;

class Test
{
    static void Merge(int[] arr, int low, int mid, int high)
    {
        int[] tempArr = new int[arr.Length];

        int left1   =   0;
        int temp    =   0;

        int total = 0;
        int loop  = 0;

        left1 = (mid - 1);
        temp = low;
        total = (high - low + 1);

        while ((low <= left1) && (mid <= high))
        {
            if (arr[low] <= arr[mid])
                tempArr[temp++] = arr[low++];
            else
                tempArr[temp++] = arr[mid++];
        }
        while (low <= left1)
            tempArr[temp++] = arr[low++];
        while (mid <= high)
            tempArr[temp++] = arr[mid++];

        for (loop = 0; loop < total; loop++)
        {
            arr[high] = tempArr[high];
            high--;
        }

    }
    static void Sort(int[] arr, int low, int high)
    {
        int mid=0;

        if (high > low)
        {
            mid = (high + low) / 2;

            Sort(arr, low, mid);
            Sort(arr, (mid + 1), high);

            Merge(arr, low, (mid + 1), high);

        }
    }
    
    static void Main(string[] args)
    {
        int[] arr = { 32, 18, 27, 65, 12, 41, 22, 26, 44 };

        int length = 0;
        int loop   = 0;

        length = arr.Length;

        Sort(arr, 0, length - 1);

        Console.WriteLine("Sorted Array:");
        for (loop = 0; loop < arr.Length; loop++)
            Console.Write(arr[loop] + " ");
        Console.WriteLine();
    }
}

Output:

Sorted Array:
12 18 22 26 27 32 41 44 65
Press any key to continue . . .

Explanation:

In the above program, we created a class Sort that contains three static methods Sort(), Merge(), and Main().

Here, we use Sort() method uses divide and conjure technique to sort the given integer array, here we used recursion, to divide and merge arrays partitions.

The Sort class also contains the Main() method, here we create an integer array and then called Sort() method that will sort the array in the ascending order and printed the sorted array on the console screen.

C# Data Structure Programs »


ADVERTISEMENT
ADVERTISEMENT




Comments and Discussions!




Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.