稠密图:用邻接矩阵来存。
稀疏图:用邻接表来存。
自环:存在从自己出发又回到自己的边
重边:两个点之间存在多条边
单源最短路(要求不存在负权边)
边的值都是正数
Dijkstra算法 O(n^2) 邻接矩阵存储图
堆优化版的Dijkstra算法O(m·log(n)) 邻接表存储图
存在负权边
Bellman-Ford算法 O(nm) 用结构体来储存图
spfa 正常情况下O(m),极端情况下O(nm),用邻接表来存储图
多源最短路
Floyd算法 O(n^3) 用邻接矩阵来存储图
d[k, i, j]表示从 i 这个点只经过 1...k 这些中间点到 j 的最短距离
d[k, i, j] = d[k-1, i, k] + d[k-1, k, j]