Implements the recursive merge sort algorithm to sort an array : Sort « Collections Data Structure « C# / C Sharp






Implements the recursive merge sort algorithm to sort an array

Implements the recursive merge sort algorithm to sort an array
  

using System;

public class MergeSort {

  public static void Sort (int[] data, int left, int right) {
    if (left < right) {
      int middle = (left + right)/2;
      Sort(data, left, middle);
      Sort(data, middle + 1, right);
      Merge(data,left, middle, middle+1, right);
    }
  }
  public static void Merge(int[] data, int left, int middle, int middle1, int right) {
    int oldPosition = left;
    int size = right - left + 1;
    int[] temp = new int[size];
    int i = 0;  
    
    while (left <= middle && middle1 <= right) {
      if (data[left] <= data[middle1]) 
        temp[i++] = data[left++];
      else
        temp[i++] = data[middle1++];
    }
    if (left > middle) 
      for (int j = middle1; j <= right; j++)
        temp[i++] = data[middle1++];
    else
      for (int j = left; j <= middle; j++)
        temp[i++] = data[left++];
    Array.Copy(temp, 0, data, oldPosition, size);
  }
  
  public static void Main (String[] args) {
    int[] data = new int[]{2,3,1,6,2,98,4,6,4,3,45};
    
    for (int i = 0; i < data.Length; i++) { 
      Console.WriteLine(data[i]);
    }

    Sort(data, 0, data.Length-1);

    for (int i = 0; i < data.Length; i++) { 
      Console.WriteLine(data[i]);
    }
  }
}
           
         
    
  








Related examples in the same category

1.Sorts an array of data using the insertion sort algorithmSorts an array of data using the insertion sort algorithm
2.Bubble sortBubble sort
3.A simple version of the QuicksortA simple version of the Quicksort
4.Demonstrate the Bubble sortDemonstrate the Bubble sort
5.Insert Sort
6.A simple stable sorting routine - far from being efficient, only for small collections.
7.Quick Sort