C++基础数据结构 | 图(Graph)
最小生成树MST
总结 | 时间复杂度 | |||
Kruscal克鲁斯卡尔算法 | 并查集模版,边edges记录并排序,通过排序控制前后顺序,逐个边进行并查集,如果边的两端父节点不一样,那就合并 if(dsu.find(cur[0])==dsu.find(cur[1]))continue;用共同父节点剪枝 |
ElogV | ||
Prim普里姆算法 |
稀疏图E<V |
顶点Vertex,map记录端点间差值,用优先队列pq维护两点间最短路径 if(visited[cur[1]]!=false)用visited数组剪枝 |
ElogV | |
稠密图E=V(V-1) | 暴力法,在剩余的点 |