工学

问答题Prim算法和Dijkstra算法选择下一个节点的标准分别是什么?对于有负边的无向图,Prim算法和Dijkstra算法还能保证获得最优解吗?

题目
问答题
Prim算法和Dijkstra算法选择下一个节点的标准分别是什么?对于有负边的无向图,Prim算法和Dijkstra算法还能保证获得最优解吗?
参考答案和解析
正确答案: 1)prim算法的选择标准是选择当前与T连结边的代价最小的节点加入。
2)Dijkstra算法的选择标准是在与T邻接的顶点w中,选择从S到w路径最短的顶点。
3)prim算法用于有负边的图可以获得最优解,Dijkstra算法不能获得最优解。
解析: 暂无解析
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面()算法适合构造一个稠密图G的最小生成树。

A.Prim算法

B、Kruskal算法

C.Floyd算法

D、Dijkstra算法


参考答案:A
解释:Prim算法适合构造一个稠密图G的最小生成树,Kruskal算法适合构造一个稀疏图G的最小生成树。

第2题:

对于含n个顶点、e条边的无向连通图,利用Prim算法构造最小生成树的时间复杂度(),用Kruskal算法构造最小生成树的时间复杂度为()。

A.O(n)

B.O(n²)

C.O(e)

D.O(eloge)

F.O(e²)


参考答案:B,D

第3题:

Prim算法求最小生成树的时间为(),对()图比较有利。


参考答案:O(n2)、稠密

第4题:

求最短路径常用的算法有()。

A.Prim算法和Kruskal算法
B.深度优先遍历算法和广度优先遍历算法
C.Dijkstra算法和Floyd算法
D.拓扑排序算法

答案:C
解析:
A项是最小生成树的算法,B项是图的遍历算法,D项中的回溯法是求解递归过程的一种重要方法。

第5题:

Prim算法和Kruscal算法都是无向连通网的最小生成树的算法,Prim算法从一个顶点开始,每次从剩余的顶点中加入一个顶点,该顶点与当前的生成树中的顶点的连边权重最小,直到得到一颗最小生成树;Kruscal算法从权重最小的边开始,每次从不在当前的生成树顶点中选择权重最小的边加入,直到得到一颗最小生成树,这两个算法都采用了 (请作答此空) 设计策略,且 ( ) 。

A.分治
B.贪心
C.动态规划
D.回溯

答案:B
解析:
Prim算法从扩展顶点开始,每次总是"贪心的"选择与当前顶点集合中距离最短的顶点,而Kruscal 算法从扩展边开始,每次总是"贪心的"选择剩余的边中最小权重的边,因此两个算法都是基于贪心策略进行的。
Prim 算法的时间复杂度为O(n2),其中n 为图的顶点数,该算法的计算时间与图中的边数无关,因此该算法适合于求边稠密的图的最小生成树;Kruscal 算法的时间复杂度为O(mlgm) ,其中m 为图的边数,该算法的计算时间与图中的顶点数无关,因此该算法适合于求边稀疏的图的最小生成树。当图稠密时,用 Prim 算法效率更高。但若事先没有关于图的拓扑特征信息时,无法判断两者的优劣。由于一个图的最小生成树可能有多棵, 因此不能保证用这两种算法得到的是同一棵最小生成树。

第6题:

求最大流的算法是()。

A、Dijkstra算法

B、破圈法

C、加边法

D、Ford-Fulkerson算法


参考答案:D

第7题:

Prim算法和Kruscal算法都是无向连通网的最小生成树的算法,Prim算法从一 个顶点开始,每次从剩余的顶点加入一个顶点,该顶点与当前生成树中的顶占的连边权重 最小,直到得到最小生成树开始,Kruscal算法从权重最小的边开始,每次从不在当前的生成树顶点之间的边中选择权重最小的边加入,直到得到一颗最小生成树,这两个算法都采用了( )设计策略,且( )。

A.分治 B.贪心 C.动态规划 D.回溯 A.若网较稠密,则Prim算法更好 B.两个算法得到的最小生成树是一样的 C.Prim算法比Kruscal算法效率更高 D.Kruscal算法比Prim算法效率更高


正确答案:B,A

第8题:

下面哪些使用的不是贪心算法()

A.单源最短路径中的Dijkstra算法

B.最小生成树的Prim算法

C.最小生成树的Kruskal算法

D.计算每对顶点最短路径的Floyd-Warshall算法


正确答案:D

第9题:

Prim算法和Kruscal算法都是无向连通网的最小生成树的算法,Prim算法从一个顶点开始,每次从剩余的顶点中加入一个顶点,该顶点与当前的生成树中的顶点的连边权重最小,直到得到一颗最小生成树;Kruscal算法从权重最小的边开始,每次从不在当前的生成树顶点中选择权重最小的边加入,直到得到一颗最小生成树,这两个算法都采用了 ( ) 设计策略,且 (请作答此空) 。

A. 若网较稠密,则Prim算法更好
B. 两个算法得到的最小生成树是一样的
C. Prim算法比Kruscal算法效率更高
D. Kruscal算法比Prim算法效率更高

答案:A
解析:
Prim算法从扩展顶点开始,每次总是"贪心的"选择与当前顶点集合中距离最短的顶点,而Kruscal 算法从扩展边开始,每次总是"贪心的"选择剩余的边中最小权重的边,因此两个算法都是基于贪心策略进行的。
Prim 算法的时间复杂度为O(n2),其中n 为图的顶点数,该算法的计算时间与图中的边数无关,因此该算法适合于求边稠密的图的最小生成树;Kruscal 算法的时间复杂度为O(mlgm) ,其中m 为图的边数,该算法的计算时间与图中的顶点数无关,因此该算法适合于求边稀疏的图的最小生成树。当图稠密时,用 Prim 算法效率更高。但若事先没有关于图的拓扑特征信息时,无法判断两者的优劣。由于一个图的最小生成树可能有多棵, 因此不能保证用这两种算法得到的是同一棵最小生成树。

第10题:

下面关于Prim算法和KruskAl算法的时间复杂度正确的是()。

A.Prim算法的时间复杂度与网中的边数有关,适合于稀疏图
B.Prim算法的时间复杂度与网中的边数无关,适合于稠密图
C.KruskAl算法的时间复杂度与网中的边数有关,适合于稠密图
D.KruskAl算法的时间复杂度与网中的边数无关,适合于稀疏图

答案:B
解析:

更多相关问题