kruskals-algorithm相关内容

使用邻接矩阵作为数据结构的Kruskal算法中的时间效率

这是我用于Kruskal算法的伪代码.我在这里使用的数据结构是一个邻接矩阵.我得到的成长顺序为 n ^ 2 .我想知道它是否正确. Kruskal的伪代码1.克鲁斯卡尔(n,m,E)2.//旨在使用Kruskal算法计算最小生成树3.//输入4. n-图中的顶点数5. m-图形中的边数6. E-边缘列表,包括边缘集和等效权重w-值大于0的成本邻接矩阵7. con –约束邻接矩阵8.//输出:- ..

如何在Haskell中编写MST算法(Prim或Kruskal)?

我可以同时编写Prim算法和Kruskal算法,以在C ++或Java中找到最小的生成树,但是我想知道如何在Oskm中使用O(mlogm)或O(mlogn)来实现它们(纯函数式的程序更好) .非常感谢. 解决方案 如svenningsson所建议的,纸张.)Kruskal的问题在于,它要求您有一个O(log n)联盟查找算法.在此处中描述了具有纯功能接口的联合查找数据结构.在内部使用可变状 ..

使用Kruskal算法找到图的最小生成树

这里是一个图,我需要在其中找到G的最小生成树使用 Prim的和 Kruskal的算法。 我使用Prim的算法找到了最小生成树。 这是我的尝试。 使用Kruskal算法很难找到最小生成树。我看过许多与Kruskal图算法有关的视频,但最终得到了与Prim算法相同的图。 有人可以告诉我如何找到最小的生成树吗? 解决方案 Prims和Kruskals总是会给您相同的答案图的 ..

为什么使用逆阿克曼函数来描述Kruskal算法的复杂性?

在一类用于算法分析的类中,向我们展示了Kruskal算法的伪代码: 然后针对不相交的森林陈述以下内容: m的序列MAKE-SET,UNION和FIND-SET操作,其中n个 是MAKE-SET操作,可以在最坏情况下通过等级和路径压缩对不相交集林 进行联合 O(mα(n))。 用于计算第2步和第5-8步的复杂度 对于已连接的G:| E | ≥| V | -1; m = O ..

什么时候应该使用Kruskal而不是Prim(反之亦然)?

我想知道何时应该使用 Prim的算法以及何时使用 Kruskal的可以找到最小的生成树?它们都有简单的逻辑,同样的最坏情况,唯一的不同是实现可能涉及一些不同的数据结构。那么决定因素是什么? 解决方案 当您的图具有很多边时,请使用Prim算法。 对于具有 V 个顶点 E 个边的图形,Kruskal算法在 O(E log V)中运行如果使用O(E + V log V)的摊销时间内运行。 ..

Kruskal算法的运行时间

Kruskal的算法如下: pre code $ MST-KRUSKAL(G,w) 1. A = {} 2.对于每个顶点v∈GV 3. MAKE-SET(v) 4.按重量将GE的边缘排序为非递减顺序w 5. for每一条边(u,v)∈GE,按照权重不减的顺序取得w 6.如果FIND-SET(u)!= FIND-SET(v) 7. A = AU {(u ,v)} 8. Unio ..
发布时间:2018-05-25 17:26:15 其他开发

错误使用Kruskal算法发现的最小值生成树

我写的code,从增加顶点成为图形和更新边的权重,然后找出最小生成树。我想我已经做到了,但似乎有它的一些错误,但我不能找到它out.The系统使用Valgrind的,并表明,MST的呼唤“无效写尺寸4”和“无效的读取大小为4” ,但我认为它的工作Valgrind的的罚款。整个误差下面code被称为像 CreateNewGraph(); AddEdge(1,2,10); AddEdge(2,4, ..
发布时间:2015-11-30 22:30:39 C/C++开发

普里姆和Kruskal的算法的复杂性

由于配重块无向连通图。 W:ê - > {1,2,3,4,5,6,7} - 这意味着,只有7的权重可能。 我需要用Prim算法在O(N + M),并Kruskal算法为O找到一个生成树(M * A(M,N))。 我不知道如何做到这一点,确实需要如何的权重可以帮助我在这里的一些指导。 解决方案 您可以边的权重排序更快。 在秩算法不需要0(M LG M)排序,你只可以使用数排序(或任何其他O( ..

迷宫网格生成算法

什么是最好的算法来生成网格迷宫? 我听到Kruskal算法和递归backtracker除其他的但是这两种依靠walls.What将是最好的算法创建惊奇其中一个整个细胞是壁? 解决方案 修改递归回溯或Prim算法应该是很简单的的维基百科) 随机Prim算法 在开始用填充单元网格。 选择一个单元格,将其标记为迷宫的一部分。添加的小区的周边填充细胞对小区列表。 虽然有细胞在列表中: 从列表中 ..
发布时间:2015-11-30 21:19:27 C/C++

如何找到最大生成树?

请问Kruskal算法为它最小生成树工作的对立面?我的意思是,选择最大重量(边缘)的每一步? 任何其他的想法找到最大生成树? 解决方案 是的是的话, 来源: 的一种方法,用于计算最大 重量跨越的G网树 - 由于采用Kruskal - 可以概括为 如下: 排序G的边成重量递减顺序。令T 边集包括所述的 最大重量生成树。设置T = ∅。 添加第一个边缘至T。 添加的下一个边缘至T当且仅当它 ..
发布时间:2015-11-30 15:53:43 C/C++

秩VS普里姆

我在想,当一个人应该使用 Prim算法时的解决方案 使用Prim算法当你有很多边缘的曲线图。 有关用图表的 V 顶点电子邮件的边缘,Kruskal算法在运行的 0(E日志V)时间和Prim算法可以运行 O(E + V登录V)摊销的时间,如果你使用斐波那契堆 Prim算法是显著的极限速度更快,当你有一个非常密集的图,很多比顶点更多的边。秩执行在典型情况(稀疏图)更好,因为它使用简单的数据结构。 ..