A simple version of the Quicksort : Sort « Collections Data Structure « C# / C Sharp






A simple version of the Quicksort

A simple version of the Quicksort
  
/*
C# A Beginner's Guide
By Schildt

Publisher: Osborne McGraw-Hill
ISBN: 0072133295
*/
// A simple version of the Quicksort. 
 
using System; 
 
class Quicksort { 
 
  // Set up a call to the actual Quicksort method. 
  public static void qsort(char[] items) { 
    qs(items, 0, items.Length-1); 
  } 
 
  // A recursive version of Quicksort for characters. 
  static void qs(char[] items, int left, int right)  
  {  
    int i, j;  
    char x, y;  
  
    i = left; j = right;  
    x = items[(left+right)/2];  
  
    do {  
      while((items[i] < x) && (i < right)) i++;  
      while((x < items[j]) && (j > left)) j--;  
  
      if(i <= j) {  
        y = items[i];  
        items[i] = items[j];  
        items[j] = y;  
        i++; j--;  
      }  
    } while(i <= j);  
  
    if(left < j) qs(items, left, j);  
    if(i < right) qs(items, i, right);  
  } 
} 
 
public class QSDemo { 
  public static void Main() { 
    char[] a = { 'd', 'x', 'a', 'r', 'p', 'j', 'i' }; 
    int i; 
 
    Console.Write("Original array: "); 
    for(i=0; i < a.Length; i++)  
      Console.Write(a[i]); 
 
    Console.WriteLine(); 
 
    // now, sort the array 
    Quicksort.qsort(a); 
     
    Console.Write("Sorted array: "); 
    for(i=0; i < a.Length; i++)  
      Console.Write(a[i]); 
  } 
}


           
         
    
  








Related examples in the same category

1.Implements the recursive merge sort algorithm to sort an arrayImplements the recursive merge sort algorithm to sort an array
2.Sorts an array of data using the insertion sort algorithmSorts an array of data using the insertion sort algorithm
3.Bubble sortBubble sort
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