Collections Data Structure C#

/*
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]); 
  } 
}