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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| void quick_sort(int q[], int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1; int x = q[l + r >> 1]; while (i < j) { do i++; while (q[i] < x); do j--; while (q[j] > x); if (i < j) swap(q[i], q[j]); } quick_sort(q, l, j); quick_sort(q, j+1, r); }
void quick_sort(int[] a, int l, int r) { if (l >= r) return; int i = l, j = r; int x = a[l]; while (i < j) { while (i < j && a[j] >= x) j--; a[i] = a[j]; while (i < j && a[i] >= x) i++; a[j] = a[i] } a[i] = x; quickSort(a, l, i-1); quickSort(a, i+1, r); }
void quickSort(int[] a, int l, int r) { if (l >= r) return ; int i = l, j = r; int x = a[r]; while (i < j) { while (i < j && a[i] <= x) i++; a[j] = a[i]; while (i < j && a[j] >= x) j--; a[i] = a[j]; } a[i] = x; quickSort(a, l, i-1); quickSort(a, i+1, r); }
|