用C语言实现:在顺序表上实现冒泡排序,打印出每一趟结果
时间: 2024-03-29 09:35:36 浏览: 72
好的,以下是用C语言实现在顺序表上实现冒泡排序,打印出每一趟结果的代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int length;
} SqList;
void print_list(SqList list) {
for (int i = 0; i < list.length; i++) {
printf("%d ", list.data[i]);
}
printf("\n");
}
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void bubble_sort(SqList *list) {
for (int i = 0; i < list->length - 1; i++) {
printf("第%d趟:", i + 1);
for (int j = 0; j < list->length - 1 - i; j++) {
if (list->data[j] > list->data[j + 1]) {
swap(&list->data[j], &list->data[j + 1]);
}
}
print_list(*list);
}
}
int main() {
SqList list = {{9, 1, 5, 8, 3, 7, 4, 6, 2}, 9};
printf("排序前:");
print_list(list);
bubble_sort(&list);
printf("排序后:");
print_list(list);
return 0;
}
```
运行结果如下:
```
排序前:9 1 5 8 3 7 4 6 2
第1趟:1 5 8 3 7 4 6 2 9
第2趟:1 5 3 7 4 6 2 8 9
第3趟:1 3 5 4 6 2 7 8 9
第4趟:1 3 4 5 2 6 7 8 9
第5趟:1 3 4 2 5 6 7 8 9
第6趟:1 3 2 4 5 6 7 8 9
第7趟:1 2 3 4 5 6 7 8 9
第8趟:1 2 3 4 5 6 7 8 9
排序后:1 2 3 4 5 6 7 8 9
```
阅读全文