C++快速排序与超快速排序
时间: 2023-11-16 15:00:46 浏览: 91
快速排序和超快速排序都是基于分治思想的排序算法,其中快速排序是目前实践中使用最频繁,实用高效的最好排序算法之一,而超快速排序则是在快速排序的基础上进行了优化,使得其在某些情况下比快速排序更快。下面是它们的实现代码:
<<C++快速排序实现代码>>
```cpp
void quickSort(vector<int>& nums, int left, int right) {
if (left >= right) return;
int i = left, j = right, pivot = nums[left + (right - left) / 2];
while (i <= j) {
while (nums[i] < pivot) i++;
while (nums[j] > pivot) j--;
if (i <= j) {
swap(nums[i], nums[j]);
i++;
j--;
}
}
quickSort(nums, left, j);
quickSort(nums, i, right);
}
```
<<超快速排序实现代码>>
```cpp
void quickSort(vector<int>& nums, int left, int right) {
while (left < right) {
int i = left, j = right, pivot = nums[left + (right - left) / 2];
while (i <= j) {
while (nums[i] < pivot) i++;
while (nums[j] > pivot) j--;
if (i <= j) {
swap(nums[i], nums[j]);
i++;
j--;
}
}
if (j - left < right - i) {
quickSort(nums, left, j);
left = i;
} else {
quickSort(nums, i, right);
right = j;
}
}
}
```
阅读全文