普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex
(graph theory)),且其所有边的权值之和亦为最小
图例
说明
不可选
可选
已选(Vnew)
此为原始的加权连通图。每条边一侧的数字...
分类:
编程语言 时间:
2015-05-27 15:58:39
阅读次数:
164
一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法求出。应用:例如要在n个城市之间铺设光缆,主要目标是要使这n个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个...
分类:
编程语言 时间:
2015-05-26 06:44:52
阅读次数:
265
首先给出 一些 概念问题:
1.生成树: 一个n个顶点的 连通图 的 极小连通子图。 它含有n个顶点,但只有 n-1条边,不存在回路。
2.最小生成树:一个带权的 无向连通图,求出 各边权值相加 最小的 生成树,叫做最小生成树。
所以 求最小生成树 首先 要满足: 1. 首先 是 无向图 2. 必须是 连通图(任意两个顶点可达)3.带权
简单的说 就是 必须是 连通网。
求...
分类:
其他好文 时间:
2015-04-13 09:47:10
阅读次数:
187
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。
克鲁斯卡尔(Kruskal)算法(只与边相关)
算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。...
分类:
编程语言 时间:
2015-03-10 17:16:34
阅读次数:
168
1 /* 2 普里姆算法的主要思想: 3 利用二维数组把权值放入,然后找在当前顶点的最小权值,然后走过的路用一个数组来记录 4 */ 5 # include 6 7 typedef char VertexType;//定义顶点类型 8 typedef ...
分类:
编程语言 时间:
2015-03-03 18:25:46
阅读次数:
203
给定一个带权的无向连通图,怎样选取一棵生成树,使树上全部边上权的总和为最小,这叫最小生成树.求最小生成树的算法(1)克鲁斯卡尔算法图的存贮结构採用边集数组,且权值相等的边在数组中排列次序能够是随意的.该方法对于边相对照较多的不是非常有用,浪费时间.(2)普里姆算法图的存贮结构採用邻接矩阵.此方法是按...
分类:
编程语言 时间:
2015-02-09 20:13:24
阅读次数:
178
给定一个带权的无向连通图,怎样选取一棵生成树,使树上全部边上权的总和为最小,这叫最小生成树.求最小生成树的算法(1)克鲁斯卡尔算法图的存贮结构採用边集数组,且权值相等的边在数组中排列次序能够是随意的.该方法对于边相对照较多的不是非常有用,浪费时间.(2)普里姆算法图的存贮结构採用邻接矩阵.此方法是按...
分类:
编程语言 时间:
2015-01-08 13:01:44
阅读次数:
160
本文摘自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html最小生成树-Prim算法和Kruskal算法Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索...
分类:
编程语言 时间:
2014-12-31 09:55:18
阅读次数:
362
描述: 一个连通图的生成树是指一个极小连通子图,它含有图中的全部顶点,但只有足以构成一棵树的 n-1 条边。我们把构造连通网的最小代价生成树成为最小生成树。而Prim算法就是构造最小生成树的一种算法。定义: 假设N = (P,{E})是连通网,TE是N上最小生成树中边的集合。算法从U = {U0.....
分类:
编程语言 时间:
2014-12-22 14:11:52
阅读次数:
258