Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static IComparable[] QuickSortRecursive(IComparable[] arr, int left, int right)
- {
- IComparable[] resultArr = arr;
- if (left < right)
- {
- int pivot = Partition(resultArr, left, right);
- if (pivot > 1)
- QuickSortRecursive(resultArr, left, pivot - 1);
- if (pivot + 1 < right)
- QuickSortRecursive(resultArr, pivot + 1, right);
- }
- return resultArr;
- }
- public static int Partition(IComparable[] arr, int left, int right)
- {
- IComparable pivot = arr[left];
- while (true)
- {
- while (arr[left].CompareTo(pivot) < 0)
- {
- left++;
- }
- while (arr[right].CompareTo(pivot) > 0)
- {
- right--;
- }
- if (left < right)
- {
- IComparable temp = arr[right];
- arr[right] = arr[left];
- arr[left] = temp;
- }
- else
- {
- return right;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement