冒泡排序(Bubble Sort)一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
先声明一个用于排序用的顺序表结构
#define MAXSIZE 10 /* 用于要排序数组个数最大值 */
typedf struct
{
int r[MAXSIZE]; /* 用于存储要排序数组 */
int length; /* 用于记录顺序表的长度 */
}SqList;
另外,由于排序最常用到的操作是数组元素的交换,我们将它写成函数
void swap(SqList *L, int i, int j)
{
int temp = 0;
temp = L->r[i];
L->r[i] = L->r[j];
L->r[j] = temp;
}
/* 对顺序表L作交换排序 */
void BubbleSort0(SqList *L)
{
int i,j;
for(i=0; i<L->length; i++)
{
for(j=i+1; j<=L->length; j++)
{
if(L->r[i] > L->r[j])
{
swap(L,i,j); /* 交换L->r[i]与L->r[j]的值*/
}