算法 - 就爱阅读网 - 养生与程序人生
语言程序

坐在马桶上看算法(8):Dijkstra最短路径算法

阅读(446)评论(0)

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

语言程序

坐在马桶上看算法(7):Floyd最短路径算法

阅读(460)评论(0)

暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。 上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最短路程,也就是求任意两个点之...

语言程序

4 张 GIF 图帮助你理解二叉查找树

阅读(415)评论(0)

二叉查找树(Binary Search Tree),也称二叉搜索树,是指一棵空树或者具有下列性质的二叉树: 任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为二叉查找树; 没有键值相等的节点。...

语言程序

细数 20 世纪最伟大的十大算法

阅读(378)评论(0)

发明十大算法的其中几位算法大师 一、1946 蒙特卡洛方法 [1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropoli...

语言程序

坐在马桶上看算法(5):队列

阅读(410)评论(0)

新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则。 规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这串数的末尾,再将第...

语言程序

如何写出正确的二分法以及分析

阅读(389)评论(0)

二分法在平时经常用到,除了查找某个key的下标以外,还有很多变形的形式。比如 STL 里的 lower_bound,upper_bound。 总结一下注意点,有这么几个: 数组是非递增还是非递减 结束条件,即while (condition) 应当是<还是<= 求mid应当是偏向左还是右,即 ...

语言程序

坐在马桶上看算法(9):巧妙的邻接表

阅读(371)评论(0)

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

语言程序

坐在马桶上看算法(5):队列

阅读(420)评论(0)

        新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这...

语言程序

坐在马桶上看算法(4):小哼买书

阅读(467)评论(0)

        之前讲了三种常用的经典排序:桶排序,冒泡排序,快速排序。排序算法还有很多,例如选择排序、计数排序、基数排序、插入排序、归并排序和堆排序等等。堆排序是基于二叉树的排序,以后再说吧。再来看一个具体的例子《小哼买书》来看看三个排序在应用上的区别和局限性。 小哼的学校要建立一个图书角,老师派小哼...

语言程序

看程序员是如何把自动化做到极致的!

阅读(418)评论(0)

【伯乐在线导读】:作为一名程序员或技术人,你们有木有写过让工作/生活得更轻松的算法/程序呢。编程自动化又会给生活带来哪些便利呢?下面是程序员们在 Quora 上的分享,伯乐在线翻译组挑选摘编一些精彩内容。 看了这些程序员的分享,你会大涨姿势滴! Guru S(IT自由职业者, 软件和web开发者,平面和网...