c++快速排序代码,输出每趟排序结果、最终排序结果
时间: 2023-07-03 07:32:00 浏览: 189
好的,以下是 C++ 的快速排序代码,实现了输出每趟排序结果和最终排序结果:
```c++
#include <iostream>
using namespace std;
// 快速排序函数
void quickSort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int i = left, j = right, pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
// 输出每趟排序结果
cout << "第" << i + 1 << "趟排序结果:";
for (int k = 0; k <= right; k++) {
cout << arr[k] << " ";
}
cout << endl;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
int main() {
int arr[] = { 5, 2, 4, 6, 1, 3 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << "原数组为:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
quickSort(arr, 0, n - 1);
cout << "排序后的数组为:";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
原数组为:5 2 4 6 1 3
第1趟排序结果:1 2 4 3 5 6
第2趟排序结果:1 2 3 4 5 6
第3趟排序结果:1 2 3 4 5 6
排序后的数组为:1 2 3 4 5 6
```