Graphic Theory Algorithms
lulipeng_cpp
计算机迷
展开
-
最小生成树之prime算法实现
prime算法的精髓在于:每次选取一条边。该边满足:1、一端已选,一端未选;2、该边权值最小。直到选取n-1条边或选取n个顶点算法结束,求出MST或者判断出不存在MST。 代码设计:1、利用两个集合存放已选顶点和未选顶点(choosed[]存放已选顶点,unchoosed[]存放未选顶点)2、每次选取的边都是一端在choosed[]中,另一端在unchoosed[]原创 2012-07-30 10:10:24 · 8099 阅读 · 0 评论 -
有向图强连通分量之tarjan算法
这个算法我也不太懂,,看着伪代码,就把这个算法的模板给写出来了。。。以后有机会再深入研究吧,这个学习态度,自己一下 代码:#include#include#includeusing namespace std;const int maxn=1001;bool inStack[maxn]; //判断是否在栈中 int dfn[maxn]; //dfn表示深原创 2012-07-30 10:42:08 · 1186 阅读 · 0 评论 -
最小生成树之kruskal算法
kruskal算法的精髓在于:每次选取一条边。该边同时满足:1、在当前未选边中权值最小;2、与已选边不构成回路。直到选取n-1条表是算法结束。找到MST活判断不存在MST。 代码设计:1、利用优先级队列将权值小的边放到队列最前,优先出对,保证了每次选择的都是权值最小的边。2、利用并查集的查找及结合把同处同一连通分量中的顶点连到同一父节点下。这样,每次判断是否构成回路原创 2012-07-30 10:20:43 · 13367 阅读 · 2 评论 -
单源最短路径之SPFA算法实现
这里来简单介绍下SPFA算法。1、SPFA算法是求解单源最短路径的,时间复杂度为0(kn),一般k2、以下的代码时借助STL中的vector,用临界表来存储图的。3、如果要输出一条最短路径对应的路线,我们可以用source[]表来记录。例如source[a]=b,表示a的前驱为b。这样在执行完SPFA算法后,就会得到一张source表。然后从end向前一直,找到start为止。原创 2012-07-29 10:20:10 · 2179 阅读 · 0 评论