算法
文章平均质量分 91
风雨萧条
这个作者很懒,什么都没留下…
展开
-
【啊哈!算法】最快最简单的排序——桶排序
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ahalei.blog.51cto.com/4767671/1362789 最快最简单的排序——桶排序 在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的转载 2016-08-04 21:35:02 · 259 阅读 · 0 评论 -
冒泡算法
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子例子为从小到大排序,原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环)第一次两两比较6 > 2交换(内循环)交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |交换后转载 2016-08-04 21:36:26 · 165 阅读 · 0 评论 -
【坐在马桶上看算法】算法10:二叉树
二叉树是一种特殊的树。二叉树的特点是每个结点最多有两个儿子,左边的叫做左儿子,右边的叫做右儿子,或者说每个结点最多有两棵子树。更加严格的递 归定义是:二叉树要么为空,要么由根结点、左子树和右子树组成,而左子树和右子树分别是一棵二叉树。 下面这棵树就是一棵二叉树。650) this.width=650;" id="aimg_2144" src="http://www.ahalei.com/data/转载 2016-08-04 21:35:31 · 195 阅读 · 0 评论 -
【坐在马桶上看算法】算法9:开启“树”之旅
我们先来看一个例子。650) this.width=650;" id="aimg_2070" src="http://bbs.ahalei.com/data/attachment/forum/201404/21/101116gr944pr21oug8lro.png" class="zoom" alt="101116gr944pr21oug8lro.png" width="500" />转载 2016-08-04 21:35:28 · 178 阅读 · 0 评论 -
【坐在马桶上看算法】算法8:巧妙的邻接表(数组实现)
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。1234564 51 4 94 3 81 2 52 4 61 3 7650) this.width=650;" src="http://bbs.ahalei.com/data/attachment/forum/20转载 2016-08-04 21:35:25 · 217 阅读 · 0 评论 -
【坐在马桶上看算法】算法7:Dijkstra最短路算法
上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”。本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。650) this.width=650;" id="aimg_1978" class="zoom" src="http://bbs.ahalei.co转载 2016-08-04 21:35:22 · 241 阅读 · 0 评论 -
【坐在马桶上看算法】算法6:只有五行的Floyd最短路算法
650) this.width=650;" id="aimg_1959" class="zoom" src="http://bbs.ahalei.com/data/attachment/forum/201403/25/081028t67l8vd73686e68m.png" style="margin:0px;padding:0px;border:0px;" alt="081028t67l8vd73转载 2016-08-04 21:35:19 · 225 阅读 · 0 评论 -
【坐在马桶上看算法】算法5:解密回文——栈
上 一节中我们学习了队列,它是一种先进先出的数据结构。还有一种是后进先出的数据结构它叫做栈。栈限定只能在一端进行插入和删除操作。比如说有一个小桶,小 桶的直径只能放一个小球,我们现在向小桶内依次放入2号、1号、3号小球。假如你现在需要拿出2号小球,那就必须先将3号小球拿出,再拿出1号小球,最后 才能将2号小球拿出来。在刚才取小球的过程中,我们最先放进去的小球最后才能拿出来,而最后放进去的小球却可以转载 2016-08-04 21:35:16 · 201 阅读 · 0 评论 -
【坐在马桶上看算法】算法4:队列——解密QQ号
新 学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过 的数字,同时小哈也告诉了小哼解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这串 数的末尾,再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数转载 2016-08-04 21:35:13 · 261 阅读 · 0 评论 -
【坐在马桶上看算法】排序总结:小哼买书
之前讲了三种常用的经典排序。排序算法还有很多,例如选择排序、计数排序、基数排序、插入排序、归并排序和堆排序等等。堆排序是基于二叉树的排序,以后再说吧。先分享一个超酷的排序算法的视频。 再来看一个具体的例子《小哼买书》来看看三个排序在应用上的区别和局限性。 小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书。小哼让每个同学写出一个自己最想读的书的IS转载 2016-08-04 21:35:11 · 300 阅读 · 0 评论 -
【坐在马桶上看算法】算法3:最常用的排序——快速排序
上一节的冒泡排序可以说是我们学习第一个真正的排序算法,并且解决了桶排序浪费空间的问题,但在算法的执行效率上却牺牲了很多,它的时间复杂度达到了O(N2)。假如我们的计算机每秒钟可以运行10亿次,那么对1亿个数进行排序,桶排序则只需要0.1秒,而冒泡排序则需要1千万秒,达到115天之久,是不是很吓人。那有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。转载 2016-08-04 21:35:08 · 212 阅读 · 0 评论 -
【坐在马桶上看算法】算法2:邻居好说话:冒泡排序
简 化版的桶排序不仅仅有上一节所遗留的问题,更要命的是:它非常浪费空间!例如需要排序数的范围是0~2100000000之间,那你则需要申请 2100000001个变量,也就是说要写成int a[2100000001]。因为我们需要用2100000001个“桶”来存储0~2100000000之间每一个数出现的次数。即便只给你5个数进行 排序(例如这5个数是1,1912345678,21000000转载 2016-08-04 21:35:05 · 205 阅读 · 0 评论 -
经典排序算法集合
经典排序算法 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort经典排序算法 - 插转载 2016-08-04 21:36:28 · 154 阅读 · 0 评论