原文:【坐在马桶上看算法】算法9:开启“树”之旅

我们先来看一个例子。 这是什么 是一个图 不对,确切的说这是一棵树。这哪里像树呢 不要着急我们来变换一下。 是不是很像一棵倒挂的树,也就是说它是根朝上,而叶子朝下的。不像 哈哈,看完下面这幅图你就会觉得像啦。 你可能会问:树和图有什么区别 这个称之为树的东西貌似和无向图差不多嘛。不要着急,继续往下看。树其实就是不包含回路的连通无向图。你可能还是无法理解这其中的差异,举个例子,如下。 上面这个例子 ...

2014-04-28 09:31 3 2041 推荐指数:

查看详情

坐在马桶上看算法】小哼买书

之前讲了三种常用的经典排序。排序算法还有很多,例如选择排序、计数排序、基数排序、插入排序、归并排序和堆排序等等。堆排序是基于二叉树的排序,以后再说吧。先分享一个超酷的排序算法的视频。 再来看一个具体的例子《小哼买书》来看看三个排序 ...

Mon Mar 03 17:57:00 CST 2014 5 3951
坐在马桶上看算法算法5:解密回文——栈

上一节中我们学习了队列,它是一种先进先出的数据结构。还有一种是后进先出的数据结构它叫做栈。栈限定只能在一端进行插入和删除操作。比如说有一个小桶,小桶的直径只能放一个小球,我们现在向 ...

Mon Mar 17 18:42:00 CST 2014 10 2826
坐在马桶上看算法算法7:Dijkstra最短路算法

上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”。本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径 ...

Mon Mar 31 17:37:00 CST 2014 4 4323
坐在马桶上看算法算法10:二叉树

二叉树是一种特殊的。二叉树的特点是每个结点最多有两个儿子,左边的叫做左儿子,右边的叫做右儿子,或者说每个结点最多有两棵子树。更加严格的递归定义是:二叉树要么为空,要么由根结点、左子树和右子树组成,而左子树和右子树分别是一棵二叉树。 下面这棵就是一棵二叉树 ...

Tue May 20 19:19:00 CST 2014 6 2951
坐在马桶上看算法算法11:堆——神奇的优先队列(上)

堆是什么?是一种特殊的完全二叉树,就像下面这棵一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树 ...

Thu Jun 12 19:16:00 CST 2014 9 3035
坐在马桶上看算法算法4:队列——解密QQ号

新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规 ...

Mon Mar 10 18:35:00 CST 2014 12 5059
坐在马桶上看算法算法8:巧妙的邻接表(数组实现)

之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下 ...

Tue Apr 08 18:00:00 CST 2014 7 3279
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM