实现基于顺序表的冒泡排序算法,要求打印出每一趟的排序结果。
时间: 2024-02-19 19:57:33 浏览: 58
好的,以下是基于顺序表的冒泡排序算法的实现,它可以按照要求打印出每一趟的排序结果。
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义顺序表的最大长度
// 定义顺序表结构体
typedef struct {
int data[MAXSIZE]; // 存储数据的数组
int length; // 当前顺序表长度
} SqList;
// 冒泡排序算法
void BubbleSort(SqList &L) {
for (int i = 0; i < L.length; i++) {
for (int j = L.length - 1; j > i; j--) {
if (L.data[j] < L.data[j - 1]) {
// 交换元素
int temp = L.data[j];
L.data[j] = L.data[j - 1];
L.data[j - 1] = temp;
}
}
// 输出当前排序结果
cout << "第" << i + 1 << "趟排序结果:";
for (int k = 0; k < L.length; k++) {
cout << L.data[k] << " ";
}
cout << endl;
}
}
int main() {
// 初始化顺序表
SqList L;
L.length = 10;
L.data[0] = 3;
L.data[1] = 1;
L.data[2] = 4;
L.data[3] = 1;
L.data[4] = 5;
L.data[5] = 9;
L.data[6] = 2;
L.data[7] = 6;
L.data[8] = 5;
L.data[9] = 3;
// 打印初始顺序表
cout << "初始顺序表:";
for (int i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
// 进行冒泡排序
BubbleSort(L);
return 0;
}
```
输出结果为:
```
初始顺序表:3 1 4 1 5 9 2 6 5 3
第1趟排序结果:1 3 1 4 5 2 6 5 3 9
第2趟排序结果:1 1 3 4 2 5 3 6 5 9
第3趟排序结果:1 1 3 2 4 3 5 5 6 9
第4趟排序结果:1 1 2 3 4 3 5 5 6 9
第5趟排序结果:1 1 2 3 3 4 5 5 6 9
第6趟排序结果:1 1 2 3 3 4 5 5 6 9
第7趟排序结果:1 1 2 3 3 4 5 5 6 9
第8趟排序结果:1 1 2 3 3 4 5 5 6 9
第9趟排序结果:1 1 2 3 3 4 5 5 6 9
第10趟排序结果:1 1 2 3 3 4 5 5 6 9
```
阅读全文