i0o9o

nzta  •  1年前


void quickSort(int *arr, int low, int high) { if (low >= high) // 结束标志 { return; } int first = low; //地位坐标 int last = high; //高位坐标 int key = arr[first]; //设置第一个为基准 while (first < last) { //将比第一个小的移到前面 while (first < last && arr[last] >= key) { last--; } if (first < last) { arr[first++] = arr[last]; } //将比第一个大的移到后面 while (first < last && arr[first] <= key) { first++; } if (first < last) { arr[last--] = arr[first]; } } arr[first] = key; //前半递归 quickSort(arr, low, first - 1); //后半递归 quickSort(arr, first + 1, high); }    void quickSort(int *arr, int low, int high) { if (low >= high) // 结束标志 { return; } int first = low; //地位坐标 int last = high; //高位坐标 int key = arr[first]; //设置第一个为基准 while (first < last) { //将比第一个小的移到前面 while (first < last && arr[last] >= key) { last--; } if (first < last) { arr[first++] = arr[last]; } //将比第一个大的移到后面 while (first < last && arr[first] <= key) { first++; } if (first < last) { arr[last--] = arr[first]; } } arr[first] = key; //前半递归 quickSort(arr, low, first - 1); //后半递归 quickSort(arr, first + 1, high); }

评论:

请先登录,才能进行评论