
算法分析
文章平均质量分 56
sky1203850702
所有的好走的路都是下坡
展开
-
Bellman-Ford算法分析
刷题的本意不在于刷了多少题,而在于通过刷题理解了多少算法,理解有多深…… Bellman-Ford算法与Dijkstra算法类似,也是用于求单源点的最短路径,与Dijkstra算法不同的是,Dijkstra算法只能用于求非负权值有向图(无向图可以看成是有向图)的单源点最短路径,而Bellman-Ford算法可以求含负权的单源点有向图的最短路径,而且Bellman-Ford算法还可以用于判断图中是原创 2012-08-14 11:21:38 · 1414 阅读 · 0 评论 -
图的邻接表存储总结
图的存储方式有两种,即邻接矩阵存储方式和邻接表存储方式。图的邻接矩阵存储很简单,邻接表存储方式的原理很简单,实现也不难。对于图中的每一个结点,都会有以邻接表,邻接表是有以该结点为起点边的所有终点组成的。 首先设置一个边结构体struct node{int u; //边的终点int w; //边的权值 int next; //指向下一条边};再设置一个表头数组head,指向每一邻接表的表头,初原创 2012-08-15 21:49:13 · 2419 阅读 · 0 评论 -
最大流dinic算法分析
Dinic算法是一种比较容易实现的,相对比较快的最大流算法。 今天看了一下它的原理,发现的确很牛逼。 求最大流的本质,就是不停的寻找增广路径。直到找不到增广路径为止。 对于这个一般性的过程,Dinic算法的优化如下: (1) Dinic算法首先对图进行一次BFS,然后在BFS生成的层次图中进行多次DFS。 层次图的意思就是,只有在BFS树中深度相差1的节点才是连接的。 这就切转载 2012-08-21 11:12:25 · 843 阅读 · 0 评论