图论————最短路,最小生成树。

最短路:

  Dijkstra:每次拓展当前未拓展的最近点 X,因为 X 不可能被再次更新,适用于正权图,适用于单源最短路问题。

       它是以起点为中心,向外层层扩展。把遍历过的边放在一个集合里,每次扩展到集合中每个点的路程最短的点,把这个点放入集合,更新集合外其他点到该点的距离。  

  Floyd O(N 3 ):多源最短路。(经典的动态dp算法,我潜意识里认为它是搜索的)。

  Spfa O(K*E):可以处理负边的情况的単源最短路。

        它用了一个队列表示待优化的点,每次取出队首优化它的联通点,如果被他优化的点不在队中就入队等待优化。

        为什么可以处理负边那?(当然这也不算是处理负边,最多算是判断负边)只需要记录每个点入队的次数,如果有点入队超过N次,则存在负边。

  Bellman-Ford:不说也罢。

最短路:

http://www.cnblogs.com/b这个博客写的很好。

  

  

原文地址:https://www.cnblogs.com/CLGYPYJ/p/7234210.html