数据结构
MarShal_yao
不为满足任何人的期待,只为给自己
更完美的交代。
展开
-
Dijkstra算法和Floyd算法详解
区别:Dijkstra算法是求单元最短路径的算法,,即是求某个顶点到其余各顶点的最短路径。而Floyd算法是求任意两个顶点之间的最短路径。Dijkstra算法(迪杰斯特拉算法)基于贪心策略具体步骤:声明一个数组来保存起始点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点集合S,剩余顶点的集合V。 初始时,S中只有起始点然后从剩余顶点中找到一个点使得从从起始点到该点的路径是最短路径,并且把该点加入到S中。 然后我们需要看看新加入的顶点是否可以到达其他顶点并且看看通过该顶点到达其.原创 2020-05-11 12:30:42 · 7869 阅读 · 0 评论 -
最小生成树——Prim算法和Kruskal算法详解
最小生成树对于一个带权连通无向图G=(V,E),生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同,设r为G的所有生成树的集合,若T为r中边的权值之和最小的那棵生成树,则T称为G的最小生成树。最小生成树的性质:最小生成树不是唯一的。 最小生成树的边的权值之和总是唯一的 最小生成树的边数为顶点数减1,即边数=n-1(n为顶点数)下面介绍两种实现最小生成树的算法:普里姆(Prim)算法Prim算法的执行非常类似于寻找图的最短路径的Dijkstra算法。基...原创 2020-05-11 11:34:18 · 3762 阅读 · 0 评论