Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1.         public static void QuickSort(int[] array, int start, int stop)
  2.         {
  3.             var pivot = array[(array.Length / 2)];
  4.  
  5.             var leftHold = start;
  6.             var rightHold = (stop == array.Length) ? array.Length - 1 : stop;
  7.  
  8.             while (leftHold < rightHold)
  9.             {
  10.                 while (array[leftHold] < pivot && leftHold <= rightHold)
  11.                 {
  12.                     leftHold++;
  13.                 }
  14.  
  15.                 while (array[rightHold] > pivot && rightHold >= leftHold)
  16.                 {
  17.                     rightHold--;
  18.                 }
  19.  
  20.                 if (leftHold < rightHold)
  21.                 {
  22.                     var foo = array[leftHold];
  23.                     array[leftHold] = array[rightHold];
  24.                     array[rightHold] = foo;
  25.  
  26.                     if (array[leftHold] == pivot && array[rightHold] == pivot)
  27.                     {
  28.                         leftHold++;
  29.                     }
  30.                 }
  31.             }
  32.  
  33.             if (start < leftHold - 1)
  34.             {
  35.                 QuickSort(array, start, leftHold - 1);
  36.             }
  37.  
  38.             if (stop > rightHold + 1)
  39.             {
  40.                 QuickSort(array, rightHold + 1, stop);
  41.             }
  42.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement