当前位置:首页 » 操作系统 » prime算法

prime算法

发布时间: 2025-09-06 00:19:52

㈠ [图] 最小生成树-Prime算法和Kruskal算法

普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现;并在1957年由美国计算机科学家罗伯特·普里姆(英语:Robert C. Prim)独立发现;1959年,艾兹格·迪科斯彻再次发现了该算法。因此,在某些场合,普里姆算法又被称为DJP算法、亚尔尼克算法或普里姆-亚尔尼克算法。

4 .输出:使用集合 V new 和 E new 来描述所得到的最小生成树。

下面对算法的图例描述

反证法:假设prim生成的不是最小生成树

这里记顶点数v,边数e

邻接矩阵:O(v 2 )
邻接表:O(e * log 2 v)

Kruskal算法是一种用来寻找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有 Prime 算法和 Boruvka 算法等。三种算法都是贪婪算法的应用。和 Boruvka 算法不同的地方是,Kruskal 算法在图中存在相同权值的边时也有效。

图例描述:

对图的顶点数 n 做归纳,证明 Kruskal 算法对任意 n 阶图适用。

归纳基础:

n = 1,显然能够找到最小生成树。

归纳过程:

假设 Kruskal 算法对 n ≤ k 阶图适用,那么,在 k + 1 阶图 G 中,我们把最短边的两个端点 a 和 b 做一个合并操作,即把 u 与 v 合为一个点 v',把原来接在 u 和 v 的边都接到 v' 上去,这样就能够得到一个 k阶图 G'(u ,v 的合并是 k + 1 少一条边),G' 最小生成树 T' 可以用Kruskal 算法得到。

我们证明 T' + {<u,v>} 是 G 的最小生成树。

用反证法,如果 T' + {<u,v>} 不是最小生成树,最小生成树是 T,即W(T) < W(T' + {<u,v>})。显然 T 应该包含 <u,v>,否则,可以用<u,v> 加入到 T 中,形成一个环,删除环上原有的任意一条边,形成一棵更小权值的生成树。而T - {<u,v>},是 G' 的生成树。所以 W(T-{<u,v>}) <= W(T'),也就是 W(T) <= W(T') + W(<u,v>) = W(T'+{<u,v>}),产生了矛盾。于是假设不成立,T' + {<u,v>}是 G 的最小生成树,Kruskal 算法对 k+1 阶图也适用。

由数学归纳法,Kruskal 算法得证。

e * log 2 e (e为图中的边数)

热点内容
图书借阅管理系统数据库 发布:2025-09-06 01:20:17 浏览:33
能在云服务器上运行的虚拟机 发布:2025-09-06 01:17:44 浏览:89
国内多ip服务器爬虫 发布:2025-09-06 01:00:31 浏览:76
用户统计源码 发布:2025-09-06 01:00:31 浏览:743
c数据库链接 发布:2025-09-06 00:47:27 浏览:175
紧身衣与压缩衣 发布:2025-09-06 00:28:42 浏览:439
prime算法 发布:2025-09-06 00:19:52 浏览:185
安卓怎么下载人类跌落梦境 发布:2025-09-06 00:14:35 浏览:626
宫廷计服务器是什么意思 发布:2025-09-06 00:08:01 浏览:695
心跳源码 发布:2025-09-05 23:34:56 浏览:43