#include "stdio.h"
#include "stdlib.h"
#include "time.h"
typedef int ElemType;
typedef struct {
ElemType *elem;
int tableLen;
} SSTable;
void ST_init(SSTable &ST, int len) {
ST.tableLen = len;
ST.elem = (ElemType *)malloc(sizeof(ElemType) * (ST.tableLen + 1));
int i;
srand(time(NULL)); // 随机数生成
for (i = 0; i < ST.tableLen; i++) {
ST.elem[i] = rand() % 100; // 控制随机数在0-99之间
}
// 如果不需要哨兵,则不需要设置ST->elem[ST->tableLen]的值
}
void ST_print(SSTable ST) {
for (int i = 0; i < ST.tableLen; i++) {
printf("%3d", ST.elem[i]);
}
printf("\n");
}
void swap(ElemType *a, ElemType *b) {
ElemType temp = *a;
*a = *b;
*b = temp;
}
void bubble_sort(ElemType *A, int len)
{
int i, j;
for (i = 0; i < len - 1; i++)
{ // 外层控制有序数的数目
for (j = len - 1; j > i; j--)
{ // 内层循环控制交换和比较
if (A[j - 1] > A[j])
{
swap(&A[j - 1], &A[j]);
}
}
}
}
int main() {
SSTable ST;
ST_init(ST, 10); // 初始化随即十个数
ST_print(ST);
bubble_sort(ST.elem, ST.tableLen); // 使用正确的长度
ST_print(ST);
return 0;
}
冒泡排序算法
最新推荐文章于 2024-07-17 20:58:27 发布