数据结构之冒泡排序

无聊写篇博客冷静一下。结束刚刚被数据结构支配的恐惧,还是虐虐冒泡排序玩玩

所谓冒泡排序,可以想象成,恩,沸腾的热水。大的数慢慢往上冒,或者小的数慢慢往上冒,其实思想很简单,每一次排序把你想要的最大的数放在序列最后,或者每一个排序把你想要的最小的数放在序列的最前面即可。

比如如下的一个序列:(按从小到大的序列安置泡所在的位置)

68,45,23,37,54,12,81,76

第一次冒:

68,45,23,37,54,81,76,12

第二次冒:

68,45,37,54,81,76,23,12

....

第七次冒:

12,23,37,45,54,68,76,81

OK 排序完毕


需注意的几个点

1.总共8个数,每次排序将最大的数放在最后,7次排序就将所有数排序完毕

2.已经有序的数字可以不加入比较

3.若一个序列从某个位置开始一直到最后已经有序,则不需要进行比较工作了!


代码(c++):

//学的数据结构,用下数据结构咯

#define MAXSIZE 20

typedef int KeyType;

typedef struct{
KeyType key[MAXSIZE+1]; //说白了就是一个整型数组。
int length; //key数组的长度
}SqList; //该数组的一号单元没有赋值哦

void BubbleSort(SqList *list){		//千年老冒泡int i,j,temp;bool nice=false;for(i=2;i<=list->length && !nice;i++){nice=true;for(j=1;j<=list->length-i+1;j++){	if(list->key[j]>list->key[j+1]){	//若循环中一次都没有进行比较,那该序列肯定有序咯,那肯定nicetemp=list->key[j];list->key[j]=list->key[j+1];list->key[j+1]=temp;nice=false;}}}
}



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部