| 2011/9/20 | 数据结构与算法 | 被围观 5,457 views+
一般的冒泡排序算法一般会进行L->length – 1次外部循环,但是有时候数组在循环到一半时就已经排序好了,但是这时循环还是不断的进行下去,一直做比较操作,尽管没有交换数据,但是做了很多不必要的比较操作。 我们可以在程序中设置一个flag标志位,当发现这一轮中没有交换动作时,就表明该数组是排序好的,这样就可以设置flag为false,退出循环。 #include <stdio.h> #define MAXSIZE 100 /* 待排序数组的大小 */ typedef bool Flag; /* 是否在这一轮循环中有进行数据的交换 */ typedef struct { int r[MAXSIZE+1]; /* 待排序数组r,r[0]为哨兵或临时变量 */ in...
| 2011/9/20 | 数据结构与算法 | 被围观 3,515 views+
较小的数字如同气泡慢慢浮到上面,每一趟排序除了确定了一个最小值之外,还把其他的元素的位置也按照大小顺序做了一定的替换,这样在接下来的排序中就会减少交换的次数,显然该算法比初级的排序算法有改进。 #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>...
| 2011/9/19 | 数据结构与算法 | 被围观 3,341 views+
这里介绍的是最简单的排序算法:初级版的冒泡排序算法,属于交换排序算法。 冒泡排序:是一种交换排序算法,它的基本思想是:比较两两相邻的元素,如果发现反序就交换位置,直到循环处理完所有的元素为止。 这里所介绍的初级版的冒泡排序算法的效率是非常低的。 #include #define MAXSIZE 100 /* 待排序数组的大小 */ typedef struct { int r[MAXSIZE+1]; /* 待排序数组r,r[0]为哨兵或临时变量 */ int length; /* 待排序数组的长度,为了方便理解,不包含r[0]元素 */ }SortList; /* 交换排序(初级版的冒泡排序算法) */ void BubbleSort01(SortList *L) { int i...
随机文章 本月热门 热评
1 Java Web笔记 – 错误处理参数回显的实现方法 2011/11/12
2 web组件的设计思路与编写 效率问题 2013/3/17
3 Java源码分析 – ArrayList动态数组列表源码分析 2011/10/10
4 AtomicInteger的介绍和使用 2012/7/30
5 Java SE 5.0以上版本中for each循环的使用 2011/6/17
6 OSCache缓存框架介绍 局部缓存和全局缓存的使用和基本配置项 2011/10/6
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.