快速排序算法的实现。任意输入20个整数,对这20个整数进行快速排序。要求使用末元素作为划分基准。
时间: 2024-05-03 15:22:40 浏览: 43
快速排序算法的实现:
```
#include <iostream>
using namespace std;
void quickSort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[right]; // 以末元素作为划分基准
int i = left, j = right - 1;
while (i <= j) {
while (i <= j && arr[i] <= pivot) { // 找到第一个大于pivot的元素
i++;
}
while (i <= j && arr[j] >= pivot) { // 找到第一个小于pivot的元素
j--;
}
if (i < j) { // 交换这两个元素
swap(arr[i], arr[j]);
}
}
swap(arr[i], arr[right]); // 将划分基准放到正确的位置上
quickSort(arr, left, i - 1); // 对左边的子数组进行快速排序
quickSort(arr, i + 1, right); // 对右边的子数组进行快速排序
}
int main() {
int arr[20];
cout << "请输入20个整数:" << endl;
for (int i = 0; i < 20; i++) {
cin >> arr[i];
}
quickSort(arr, 0, 19);
cout << "快速排序后的结果为:" << endl;
for (int i = 0; i < 20; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
输入样例:
```
请输入20个整数:
1 5 9 3 7 8 2 4 6 0 11 15 19 13 17 12 16 18 10 14
```
输出样例:
```
快速排序后的结果为:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
```
阅读全文