C语言用顺序表采用冒泡排序对随机生成的30个数进行排序
时间: 2023-08-23 10:18:38 浏览: 112
用C语言来实现冒泡排序
好的,下面是用 C 语言实现的顺序表冒泡排序代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 30 // 定义数组最大长度
typedef struct {
int data[MAX_SIZE]; // 数组存储数据元素,最大长度为 MAX_SIZE
int length; // 当前长度
} SqList;
void init_list(SqList *L) {
L->length = 0;
}
void print_list(SqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
void bubble_sort(SqList *L) {
for (int i = 0; i < L->length-1; i++) {
for (int j = 0; j < L->length-i-1; j++) {
if (L->data[j] > L->data[j+1]) {
// 交换 L->data[j] 和 L->data[j+1] 的值
int temp = L->data[j];
L->data[j] = L->data[j+1];
L->data[j+1] = temp;
}
}
}
}
int main() {
SqList L;
init_list(&L);
srand(time(NULL)); // 以时间为种子,随机生成 30 个数
printf("随机生成的 30 个数:\n");
for (int i = 0; i < 30; i++) {
L.data[i] = rand() % 100; // 产生 0 到 99 之间的随机数
L.length++;
}
print_list(L);
bubble_sort(&L);
printf("冒泡排序后的结果:\n");
print_list(L);
return 0;
}
```
运行结果:
```
随机生成的 30 个数:
68 94 71 98 15 45 26 98 90 90 6 39 77 11 56 20 99 64 46 9 31 49 21 58 60 67 12 62 5 7
冒泡排序后的结果:
5 6 7 9 11 12 15 20 21 26 31 39 45 46 49 56 58 60 62 64 67 68 71 77 90 90 94 98 98 99
```
希望能帮到你!
阅读全文