1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
private void (int[] array, int left, int right) { if (left >= right) { return; } int n = partition(array, left, right); help(array, left, n - 1); help(array, n + 1, right); }
private int partition(int[] array, int left, int right) { int v = array[left]; while (true) { while (v > array[left]) { left++; } while (v < array[right]) { right--; } if (left >= right) { break; } int tmp = array[left]; array[left] = array[right]; array[right] = tmp; } return left; }
|
近期评论