niusouti.com

Prim算法和Kruscal算法都是无向连通网的最小生成树的算法,Prim算法从一 个顶点开始,每次从剩余的顶点加入一个顶点,该顶点与当前生成树中的顶占的连边权重 最小,直到得到最小生成树开始,Kruscal算法从权重最小的边开始,每次从不在当前的生成树顶点之间的边中选择权重最小的边加入,直到得到一颗最小生成树,这两个算法都采用了( )设计策略,且( )。A.分治 B.贪心 C.动态规划 D.回溯 A.若网较稠密,则Prim算法更好 B.两个算法得到的最小生成树是一样的 C.Prim算法比Kruscal算

题目

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

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


相似考题
更多“Prim算法和Kruscal算法都是无向连通网的最小生成树的算法,Prim算法从一 个顶点开始,每次从剩余的 ”相关问题
  • 第1题:

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

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

    B.最小生成树的Prim算法

    C.最小生成树的Kruskal算法

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


    正确答案:D

  • 第2题:

    如果求一个连通图中以某个顶点为根的高度最小的生成树,应采用()

    A、深度优先搜索算法

    B、广度优先搜索算法

    C、求最小生成树的prim算法

    D、拓扑排序算法


    参考答案:B

  • 第3题:

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

    A.O(n)

    B.O(n²)

    C.O(e)

    D.O(eloge)

    F.O(e²)


    参考答案:B,D

  • 第4题:

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

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

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

  • 第5题:

    在图采用邻接表存储时,求最小生成树的Prim算法的时间复杂度为()。


    答案:B
    解析:
    Prim算法的时间复杂度:当图采用邻接矩阵存储时,时间复杂度为0(r12),采用邻接表存储时,时间复杂度为O(n+e)。

  • 第6题:

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

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

    答案:B
    解析:

  • 第7题:

    对于一个带权连通图,在什么情况下,利用普里姆(Prim)算法与利用克鲁斯卡尔(Kruskal)算法可能生成不同的最小生成树?


    正确答案:当图中出现权值相同的边时,利用普里姆(Prim)算法与利用克鲁斯卡尔(Kruskal)算法可能生成不同的最小生成树。

  • 第8题:

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


    正确答案:O(n2);O(elog2e)

  • 第9题:

    对于含有N个顶点E条边的无向连通图,利用Kruskal算法生成最小代价生成树的时间复杂度为()。


    正确答案:o(elg0)

  • 第10题:

    填空题
    对于含有N个顶点E条边的无向连通图,利用Kruskal算法生成最小代价生成树的时间复杂度为()。

    正确答案: o(elg0)
    解析: 暂无解析

  • 第11题:

    问答题
    对于一个带权连通图,在什么情况下,利用普里姆(Prim)算法与利用克鲁斯卡尔(Kruskal)算法可能生成不同的最小生成树?

    正确答案: 当图中出现权值相同的边时,利用普里姆(Prim)算法与利用克鲁斯卡尔(Kruskal)算法可能生成不同的最小生成树。
    解析: 暂无解析

  • 第12题:

    填空题
    对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal算法求最小生成树的时间复杂度为()。

    正确答案: O(n2),O(elog2e)
    解析: 暂无解析

  • 第13题:

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

    A.Prim算法

    B、Kruskal算法

    C.Floyd算法

    D、Dijkstra算法


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

  • 第14题:

    对(),用Prim算法求最小生成树较为合适,而Kruskal算法适于构造()图的最小生成树。

    A.完全图

    B.连通图

    C.稀疏图

    D.稠密图


    参考答案:D,C

  • 第15题:

    最小生成树

    A.Prim算法:

    procedure prim(v0:integer);

    var

    lowcost,closest:array[1..maxn] of integer;

    i,j,k,min:integer;


    正确答案:

     

    begin
    for i:=1 to n do begin
    lowcost[i]:=cost[v0,i];
    closest[i]:=v0;
    end;
    for i:=1 to n-1 do begin
    {寻找离生成树最近的未加入顶点k}
    min:=maxlongint;
    for j:=1 to n do
    if (lowcost[j]<min) and (lowcost[j]<>0) then begin
    min:=lowcost[j];
    k:=j;
    end;
    lowcost[k]:=0; {将顶点k加入生成树}
    {生成树中增加一条新的边k到closest[k]}
    {修正各点的lowcost和closest值}
    for j:=1 to n do
    if cost[k,j]<lwocost[j] then begin
    lowcost[j]:=cost[k,j];
    closest[j]:=k;
    end;
    end;
    end;{prim}

  • 第16题:

    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 算法效率更高。但若事先没有关于图的拓扑特征信息时,无法判断两者的优劣。由于一个图的最小生成树可能有多棵, 因此不能保证用这两种算法得到的是同一棵最小生成树。

  • 第17题:

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

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

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

  • 第18题:

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

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

    答案:B
    解析:
    Prim算法和Kruscal算法都是基于贪心算法的应用。Prim算法的时间复杂度为O(n2),与图中边数无关,该算法适合于稠密图。Kruskal算法的时间复杂度只和边有关系,为O(elog2e),由于Kruskal算法只与边有关,因此适合求稀疏图的最小生成树。

  • 第19题:

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

    • A、Prim算法
    • B、Kruskal算法
    • C、Floyd算法
    • D、Dijkstra算法

    正确答案:A

  • 第20题:

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


    正确答案: 1)prim算法的选择标准是选择当前与T连结边的代价最小的节点加入。
    2)Dijkstra算法的选择标准是在与T邻接的顶点w中,选择从S到w路径最短的顶点。
    3)prim算法用于有负边的图可以获得最优解,Dijkstra算法不能获得最优解。

  • 第21题:

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

    正确答案: 1)prim算法的选择标准是选择当前与T连结边的代价最小的节点加入。
    2)Dijkstra算法的选择标准是在与T邻接的顶点w中,选择从S到w路径最短的顶点。
    3)prim算法用于有负边的图可以获得最优解,Dijkstra算法不能获得最优解。
    解析: 暂无解析

  • 第22题:

    单选题
    在图采用邻接表存储时,求最小生成树的Prim算法的时间复杂度为(  )。
    A

    O(n)

    B

    O(n+e)

    C

    O(n2)

    D

    O(n3)


    正确答案: D
    解析:

  • 第23题:

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

    Prim算法

    B

    Kruskal算法

    C

    Floyd算法

    D

    Dijkstra算法


    正确答案: A
    解析: 暂无解析