会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
啊哈磊
编程从这里起步
首页
新随笔
订阅
管理
2014年6月17日
【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)
摘要: 接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。n=0;for(i=1;i=1;i--) siftd...
阅读全文
posted @ 2014-06-17 09:27 啊哈磊
阅读(4389)
评论(7)
推荐(4)
2014年6月12日
【坐在马桶上看算法】算法11:堆——神奇的优先队列(上)
摘要: 堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二...
阅读全文
posted @ 2014-06-12 11:16 啊哈磊
阅读(3618)
评论(9)
推荐(6)
2014年5月20日
【坐在马桶上看算法】算法10:二叉树
摘要:
《啊哈!算法》二叉树是一种特殊的树。二叉树的特点是每个结点最多有两个儿子,左边的叫做左儿子,右边的叫做右儿子,或者说每个结点最多有两棵子树。更加严格的递归定义是:二叉树要么为空,要么由根结点、左子树和右子树组成,而左子树和右子树分别是一棵二叉树。 下面这棵树就是一棵二叉树。
阅读全文
posted @ 2014-05-20 11:19 啊哈磊
阅读(3397)
评论(6)
推荐(2)
2014年4月28日
【坐在马桶上看算法】算法9:开启“树”之旅
摘要:
我们先来看一个例子。 这是什么?是一个图?不对,确切的说这是一棵树。这哪里像树呢?不要着急我们来变换一下。 是不是很像一棵倒挂的树,也就是说它是根朝上,而叶子朝下的。不像?哈哈,看完下面这幅图你就会觉得像啦。 你可能会问:树和图有什么区别?这个称之为树的东西貌似和无向图差不多嘛。不要着急,继续往下看。树其实就是不包含回路的连通无向图。你可能还是无法理解这其中的差异,举个例子,如下。
阅读全文
posted @ 2014-04-28 09:31 啊哈磊
阅读(2389)
评论(3)
推荐(11)
2014年4月8日
【坐在马桶上看算法】算法8:巧妙的邻接表(数组实现)
摘要: 之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。4 51 4 94 3 81 2 52 4 61 3 7 第一行两个整数nm。n表示顶点个数(顶点编号...
阅读全文
posted @ 2014-04-08 10:00 啊哈磊
阅读(4414)
评论(7)
推荐(9)
2014年3月31日
【坐在马桶上看算法】算法7:Dijkstra最短路算法
摘要:
【超简单超详细的Dijkstra最短路算法教程】上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”。本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。
阅读全文
posted @ 2014-03-31 09:37 啊哈磊
阅读(4914)
评论(4)
推荐(6)
2014年3月25日
【坐在马桶上看算法】算法6:只有五行的Floyd最短路算法
摘要:
【超简单的Floyd最短路算法C语言代码实现】暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。
阅读全文
posted @ 2014-03-25 08:24 啊哈磊
阅读(5014)
评论(9)
推荐(17)
2014年3月17日
【坐在马桶上看算法】算法5:解密回文——栈
摘要:
上一节中我们学习了队列,它是一种先进先出的数据结构。还有一种是后进先出的数据结构它叫做栈。栈限定只能在一端进行插入和删除操作。比如说有一个小桶,小桶的直径只能放一个小球,我们现在向小桶内依次放入2号、1号、3号小球。假如你现在需要拿出2号小球,那就必须先将3号小球拿出,再拿出1号小球,最后才能将2号小球拿出来。在刚才取小球的过程中,我们最先放进去的小球最后才能拿出来,而最后放进去的小球却可以最先拿出来。这就是后进先出,也可以称为先进后出。
阅读全文
posted @ 2014-03-17 10:42 啊哈磊
阅读(3236)
评论(10)
推荐(5)
2014年3月10日
【坐在马桶上看算法】算法4:队列——解密QQ号
摘要:
【超简单队列教程C语言代码实现】新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这串数的末尾,再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一起就是小哈的QQ啦。现在你来帮帮小哼吧。小哈给小哼加密过的一串数是“6 3 1 75 8 9 2 4”。
阅读全文
posted @ 2014-03-10 10:35 啊哈磊
阅读(5953)
评论(12)
推荐(10)
2014年3月3日
【坐在马桶上看算法】小哼买书
摘要:
【啊哈!算法】之前讲了三种常用的经典排序。排序算法还有很多,例如选择排序、计数排序、基数排序、插入排序、归并排序和堆排序等等。堆排序是基于二叉树的排序,以后再说吧。先分享一个超酷的排序算法的视频。
阅读全文
posted @ 2014-03-03 09:57 啊哈磊
阅读(4413)
评论(5)
推荐(10)
下一页
公告