Search
 
SCRIPT & CODE EXAMPLE
 

CSHARP

Merge sort in C#

// C# program for Merge Sort
using System;
class MergeSort {
  
    // Merges two subarrays of []arr.
    // First subarray is arr[l..m]
    // Second subarray is arr[m+1..r]
    void merge(int[] arr, int l, int m, int r)
    {
        // Find sizes of two
        // subarrays to be merged
        int n1 = m - l + 1;
        int n2 = r - m;
  
        // Create temp arrays
        int[] L = new int[n1];
        int[] R = new int[n2];
        int i, j;
  
        // Copy data to temp arrays
        for (i = 0; i < n1; ++i)
            L[i] = arr[l + i];
        for (j = 0; j < n2; ++j)
            R[j] = arr[m + 1 + j];
  
        // Merge the temp arrays
  
        // Initial indexes of first
        // and second subarrays
        i = 0;
        j = 0;
  
        // Initial index of merged
        // subarray array
        int k = l;
        while (i < n1 && j < n2) {
            if (L[i] <= R[j]) {
                arr[k] = L[i];
                i++;
            }
            else {
                arr[k] = R[j];
                j++;
            }
            k++;
        }
  
        // Copy remaining elements
        // of L[] if any
        while (i < n1) {
            arr[k] = L[i];
            i++;
            k++;
        }
  
        // Copy remaining elements
        // of R[] if any
        while (j < n2) {
            arr[k] = R[j];
            j++;
            k++;
        }
    }
  
    // Main function that
    // sorts arr[l..r] using
    // merge()
    void sort(int[] arr, int l, int r)
    {
        if (l < r) {
            // Find the middle
            // point
            int m = l+ (r-l)/2;
  
            // Sort first and
            // second halves
            sort(arr, l, m);
            sort(arr, m + 1, r);
  
            // Merge the sorted halves
            merge(arr, l, m, r);
        }
    }
  
    // A utility function to
    // print array of size n */
    static void printArray(int[] arr)
    {
        int n = arr.Length;
        for (int i = 0; i < n; ++i)
            Console.Write(arr[i] + " ");
        Console.WriteLine();
    }
  
    // Driver code
    public static void Main(String[] args)
    {
        int[] arr = { 12, 11, 13, 5, 6, 7 };
        Console.WriteLine("Given Array");
        printArray(arr);
        MergeSort ob = new MergeSort();
        ob.sort(arr, 0, arr.Length - 1);
        Console.WriteLine("
Sorted array");
        printArray(arr);
    }
}
  
// This code is contributed by Princi Singh
Comment

PREVIOUS NEXT
Code Example
Csharp :: How to get an array of months in c# 
Csharp :: How do i destroy a prefab without the error? 
Csharp :: how to get the date of the first day and last day of the week c# 
Csharp :: how to copy last element in list c# 
Csharp :: how to convert string to int in c# 
Csharp :: c# write byte[] to stream 
Csharp :: c# get value from textbox 
Csharp :: unity new input system keydown 
Csharp :: convert array object to int[] c# 
Csharp :: c# dictionary loop key value 
Csharp :: unity assembly 
Csharp :: how set function when props update in vue 
Csharp :: c# regex get matched string 
Csharp :: onkeypressed unity 
Csharp :: how get query from url in laravel 
Csharp :: c# remove double quotes from string 
Csharp :: c# find element by condition 
Csharp :: log to console c# unity 
Csharp :: newtonsoft create dynamic object 
Csharp :: c# bitmap to byte array 
Csharp :: get last element of array c# 
Csharp :: c# string contains any of list 
Csharp :: No Entity Framework provider found for the ADO.NET provider with invariant name 
Csharp :: how to see image from website in wpf 
Csharp :: how to store an array inside an array c# 
Csharp :: c# datagridview hide row selector 
Csharp :: wpf mouse over style trigger 
Csharp :: convert string to number c# 
Csharp :: get text unity 
Csharp :: c# nullable string 
ADD CONTENT
Topic
Content
Source link
Name
7+3 =