冒泡排列每次排列一次进入输入,输出不重复c++
时间: 2024-03-02 07:49:57 浏览: 22
好的,我理解您的需求了。您需要一个冒泡排序算法,每次排列一次并输入和输出结果,但不重复排序和输出。以下是一个简单的C++实现:
```c++
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
bool swapped = true;
for (int i = 0; i < n-1 && swapped; i++) {
swapped = false;
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]);
swapped = true;
}
}
// 输出本轮排序结果
cout << "第" << i+1 << "轮排序结果:";
for (int k = 0; k < n; k++) {
cout << arr[k] << " ";
}
cout << endl;
}
}
int main() {
int arr[] = {9, 3, 2, 7, 5, 1, 8, 4, 6};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
return 0;
}
```
这个代码实现了冒泡排序算法,并在每一轮排序完成后输出当前的排序结果。为了避免重复排序和输出,我们使用了一个bool类型的变量swapped,用于标记当前轮是否有元素进行了交换。如果没有元素进行交换,说明数组已经排好序了,不需要再进行排序和输出。