数据结构笔记 - 排序算法 冒泡排序算法实现

较小的数字如同气泡慢慢浮到上面,每一趟排序除了确定了一个最小值之外,还把其他的元素的位置也按照大小顺序做了一定的替换,这样在接下来的排序中就会减少交换的次数,显然该算法比初级的排序算法有改进。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>

#define MAXSIZE 100

typedef struct
{
int r[MAXSIZE+1]; /* 待排序数组r,r[0]为哨兵或临时变量 */
int length; /* 待排序数组的长度,为了方便理解,不包含r[0]元素 */
}SortList;

/* 冒泡排序算法 */
void BubbleSort02(SortList *L)
{
int i,j;
int temp;
for(i=1;i<L->length;i++)
{
for(j=L->length;j>i;j--)
{
if(L->r[j-1]>L->r[j])
{
/* 交换r[j-1]和r[j]的值 */
temp=L->r[j-1];
L->r[j-1]=L->r[j];
L->r[j]=temp;
}
}
}
}
arthinking wechat
欢迎关注itzhai公众号