数据结构之冒泡排序
无聊写篇博客冷静一下。结束刚刚被数据结构支配的恐惧,还是虐虐冒泡排序玩玩
所谓冒泡排序,可以想象成,恩,沸腾的热水。大的数慢慢往上冒,或者小的数慢慢往上冒,其实思想很简单,每一次排序把你想要的最大的数放在序列最后,或者每一个排序把你想要的最小的数放在序列的最前面即可。
比如如下的一个序列:(按从小到大的序列安置泡所在的位置)
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;}}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
