最短路径算法:
最短路径 ,迪杰斯特拉算法,就是基于广度优先的思想的,也是贪婪算法的思想
广度优先搜索(迪杰斯特拉算法):
这个算法实现:
**从起点开始,首先标记起点为已知,这时,我们就好像能看到这个点能通往其他点的路了(这就是边的两个点)
**维护一个记录表,记录下这个点能通往下一个点路径和通向第一个点所需要的权重,并把下一个所有可达点入队
**从队列中取一个点出来,再次标为已知;这是又会产生很多路径,联合已知的点,更新记录表(如果表中没有的路径,添加进去即可;如果表中有,但是新发现的路径更优,则将最优的更新到表中;如果新的路径不比旧的路径更优,则放弃这个数据)
**这种横向的层次遍历全部后,这个记录表就是最优的路径了,只要从中选出你的目的地即可
图出自:http://blog.csdn.net/javyzheng/article/details/12384287
下图演示算法运行(该图还包括是否known的变化,代码中是不需要的)
以v3为开始顶点(无权图)
这个思想,我所知的就是计算机网络中对路由表的维护了,OSPF算法: