1. public void QuickSort(int[] elems)  
  2. {  
  3. foreach (int elem in elems)  
  4. Console.Write(elem + " ");  
  5. Console.WriteLine();  
  6. Console.WriteLine("---------------------------------------");  
  7. QuickSort(0,elems.Length-1,elems);  
  8. Console.WriteLine("---------------------------------------");  
  9. foreach (int elem in elems)  
  10. Console.Write(elem + " ");  
  11. Console.WriteLine();  
  12. }  
  13.  
  14. public void QuickSort(int left, int right, int[] elems)  
  15. {  
  16. if (left < right)  
  17. {  
  18. int index = Partition(left, right, elems);  
  19. QuickSort(left, index - 1, elems);  
  20. QuickSort(index+1, right, elems);  
  21. }  
  22. }  
  23.  
  24. private int Partition(int left, int right, int[] elems)  
  25. {  
  26. int temp = elems[left];  
  27. while (left < right)  
  28. {  
  29. while (left < right && elems[right] >= temp)  
  30. {  
  31. right--;  
  32. }  
  33. elems[left] = elems[right];  
  34. while (left < right && elems[left] <= temp)  
  35. {  
  36. left++;  
  37. }  
  38. elems[right] = elems[left];  
  39. }  
  40. elems[left] = temp;  
  41. return left;  
  42. }  
  43.