nzta • 1年前
评论:
zvoid 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);
}
请先登录,才能进行评论