求图的最短路径 用来求解加权有向图的最短路径的算法是什么算法?
浏览量:1345
时间:2021-03-16 10:25:23
作者:admin
用来求解加权有向图的最短路径的算法是什么算法?
如果没有带负权环的稀疏图,可以使用SPFA。时间复杂度O(km)
m是边数,K是平均排队次数
2。如果没有带负权环的稠密图,建议使用Dijkstra如果有负权环,可以尝试Floyd,O(n^3)
任意两点的最短路径:Floyd最好实现,基于Johnson(high efficiency of sparse graph)的重标记算法,具体程序可以在线查看
Dijkstra(Dijkstra)算法是一种典型的最短路径路由算法,用于计算从一个节点到所有其他节点的最短路径。主要特点是从头到尾展开。Dijkstra一般有两种表达方式,一种是永久和临时标记,另一种是开放的,闭表模式采用开闭表模式,采用贪心法的算法策略,一般过程如下:
1。声明两个集合,open和close,open用于存储尚未遍历的节点,close用于存储已遍历的节点
2。在初始阶段,将初始节点置于关闭状态,将所有其他节点置于打开状态
3。以初始节点为中心逐层遍历,得到最接近指定节点的子节点,将其放入关闭节点,计算从新节点到关闭节点包含所有子节点的路径。代码示例如下:node对象用于封装节点信息,包括名称和子节点[Java]view plain copy public class node{private string name private map
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。