读书人

图论 5 最短路径 最长路径

发布时间: 2013-10-15 16:47:37 作者: rapoo

图论 五 最短路径 最长路径

?

? ? 花几个算法的简易图:

? ?一、 dijkstra算法:

? ? ?图论 5 最短路径 最长路径

? ? ? ?dijkstra算法需要三个数据结构,a:一个存储已选节点,b:一个存储未选节点,c:一个存储需要不断更新的已经遍历的路径

? ? ? ?算法流程:循环一下算法知道B为空:

? ? ? ?1.选取一个节点为开始节点,遍历开始节点的连通的未访问节点

? ? ? ?2.更新C,取C中总权重最小值的结束节点作为路径下一个循环的开始节点

?

? ?二、 warshall算法:

? ? ? ? ?图论 5 最短路径 最长路径

? warshall算法:需要邻接矩阵存储图,以便获得出边入边。

?算法三个循环for ?所有节点

? ? ? ? ? ? ? ? ? ? ? ?for ? 节点出边

? ? ? ? ? ? ? ? ? ? ? ? ? for 节点入边

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?如果出边+入边<两端节点:两端节点=出边+入边

就是将每个节点贡献给自己的入边节点,最后整个图就连在一起啦,可喜可贺,可喜可贺

?

三、开始结束边算法 ?

获得两点之间最大路径,最短路径,可以求出startnode到endnode的所有路径,然后找出来

?

图论 5 最短路径 最长路径

? ? 算法很简单,就是遍历所有节点,然后递归后继,直到递归到看到环了,或是递归到头了,就生成开始节点到结束节点到边拉,可喜可贺,可喜可贺

?

?

? ?复杂度上,当然是dijkstra好啦

? ?在编码上,邻接矩阵比较好用,不用将大的要死的图存在一起,纯属个人见解

?

?

?

读书人网 >编程

热点推荐