举例:
通过两两比较相邻记录的关键字, 如果发生逆序,则进行交换。
每进行一趟确定一个最大关键字的位置,其结果记录被安置到最后一个记录的位置上。 直到算法没有进行过交换记录的操作表示排序结束。
算法属性:
时间复杂度为O(n^2)
空间复杂度为O(1)
稳定排序。
当初始记录无序,n较大时,此算法时间复杂度较高,不宜采用
代码如下:
#include<stdio.h>
#define MAXSIZE 20
typedef int KeyType;
typedef int InfoType;
//记录类型
typedef struct {
KeyType key;
InfoType otherinfo;
}RedType;
//顺序表类型
typedef struct {
RedType r[MAXSIZE + 1]; //r[0]闲置或作哨兵
int length; //顺序表长度
}SqList;