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);  }}