最短路径算法

来源:互联网 发布:物业软件 编辑:程序博客网 时间:2024/05/29 16:30

最短路径算法:

最短路径 ,迪杰斯特拉算法,就是基于广度优先的思想的,也是贪婪算法的思想


广度优先搜索(迪杰斯特拉算法):

这个算法实现:

**从起点开始,首先标记起点为已知,这时,我们就好像能看到这个点能通往其他点的路了(这就是边的两个点)

**维护一个记录表,记录下这个点能通往下一个点路径和通向第一个点所需要的权重,并把下一个所有可达点入队

**从队列中取一个点出来,再次标为已知;这是又会产生很多路径,联合已知的点,更新记录表(如果表中没有的路径,添加进去即可;如果表中有,但是新发现的路径更优,则将最优的更新到表中;如果新的路径不比旧的路径更优,则放弃这个数据)

**这种横向的层次遍历全部后,这个记录表就是最优的路径了,只要从中选出你的目的地即可


图出自:http://blog.csdn.net/javyzheng/article/details/12384287


下图演示算法运行(该图还包括是否known的变化,代码中是不需要的)

以v3为开始顶点(无权图)



这个思想,我所知的就是计算机网络中对路由表的维护了,OSPF算法:

https://zh.wikipedia.org/wiki/%E5%BC%80%E6%94%BE%E5%BC%8F%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84%E4%BC%98%E5%85%88


0 0
原创粉丝点击