void exchange(int* x, int* y){ int temp = *x; *x = *y; *y = temp;}// 疾速排序是一种旧址排序,不须要调配新的数组空间// start和end为子数组的起始地位与终止地位int partition(int *arr, int start, int end){ int temp; // 获取主元 int key = arr[end]; // left不存在,故将i去值为start-1 int i = start - 1; for (int j = start; j < end; j++) { if (arr[j] <= key) { i = i + 1; exchange(arr + i, arr + j); } } exchange(arr + i + 1, arr + end); return i + 1;}void quickSort(int *arr, int start, int end){ if (start < end) { int mid = partition(arr, start, end); quickSort(arr, start, mid - 1); quickSort(arr, mid + 1, end); }}