private static int Partition(int[][] array, int left, int right, IJaggedComparer comparer) { int[] pivot = array[left]; while (true) { while (comparer.Compare(array[left], pivot) < 0) { left++; } while (comparer.Compare(array[right], pivot) > 0) { right--; } if (left < right) { Swap(ref array[left], ref array[right]); } else { return(right); } } }
private static int Partition(int[][] array, int left, int right, IJaggedComparer comparer) { int[] pivot = array[left]; while (true) { while (comparer.Compare(array[left], pivot) < 0) left++; while (comparer.Compare(array[right], pivot) > 0) right--; if (left < right) { Swap(ref array[left], ref array[right]); } else { return right; } } }