图的概念及分类
图的应用
多了去了
图的表示
- 邻接矩阵
- 领接边表: 每个顶点的边用链表实现
- 邻接边集: 每个顶点的边用并查集实现
表示 | 空间 | 检测 u,v 是否连接 | 遍历v的邻居 |
---|---|---|---|
边表 | E E E | E E E | E E E |
邻接矩阵 | V 2 V^2 V2 | 1 1 1 | V V V |
邻接边表 | E + V E+V E+V | D e g r e e ( v ) Degree(v) Degree(v) | D e g r e e ( v ) Degree(v) Degree(v) |
邻接边集 | E + V E+V E+V | log ( D e g r e e ( v ) ) \log(Degree(v)) log(Degree(v)) | D e g r e e ( v ) Degree(v) Degree(v) |
图的周游
深度优先
广度优先
拓扑排序
最短路径算法
总结各类图中的算法复杂度
类型 | 复杂度 |
---|---|
无权图 (BFS) | O ( E + V ) O(E+V) O(E+V) |
有权图 (Dijkstra) | O ( E log ( V ) ) O(E\log(V)) O(Elog(V)) |
有权图有负边 (Bellman-Ford) | O ( E V ) O(EV) O(EV) |
有权无环图 | O ( E + V ) O(E+V) O(E+V) |
无权图
有权图
Dijkstra 算法
Bellman-Ford 算法
最小生成树
Prim 算法
Kruskal 算法
妈耶,这块内容也太多了,以后再写