Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void QuickSort(int[] array, int start, int stop)
- {
- var pivot = array[(array.Length / 2)];
- var leftHold = start;
- var rightHold = (stop == array.Length) ? array.Length - 1 : stop;
- while (leftHold < rightHold)
- {
- while (array[leftHold] < pivot && leftHold <= rightHold)
- {
- leftHold++;
- }
- while (array[rightHold] > pivot && rightHold >= leftHold)
- {
- rightHold--;
- }
- if (leftHold < rightHold)
- {
- var foo = array[leftHold];
- array[leftHold] = array[rightHold];
- array[rightHold] = foo;
- if (array[leftHold] == pivot && array[rightHold] == pivot)
- {
- leftHold++;
- }
- }
- }
- if (start < leftHold - 1)
- {
- QuickSort(array, start, leftHold - 1);
- }
- if (stop > rightHold + 1)
- {
- QuickSort(array, rightHold + 1, stop);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement