算法的思想就不多说了。主要对代码解释一下。
graph = [[0,4,3,2],
[4,0,1,4],
[3,1,0,2],
[2,4,2,0]]
n = 4
flags = [True,True,True,True]
queue = []
#flags是存储节点访问情况的,true为待访问节点
#queue存储节点访问顺序
que...
分类:
编程语言 时间:
2015-03-27 22:28:04
阅读次数:
186
Prim:复杂度:O(n^2)用途:最小生成树算法,求一点到所有的位置之和的最小值,不是形成环,是把所有顶点连在一起的最短路适用条件:步骤:跟Dijkstra出奇的相似,只是prim把d和p都变成一个k数组(- -其实一样好吗)而且Dijkstra是第一个for为了记录下标,而prim是为了记录下标...
分类:
编程语言 时间:
2015-03-20 21:41:52
阅读次数:
178
[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020]
算法描述
如果连通图是一个网,则称该网中所有生成树中权值总和最小的生成树为最小生成树,也称最小代价生成树。利用Prim算法构造的最小生成树方法思想:
假设G=(V,E)是一个具有n个顶点的连通网,顶点集V={v1,v2,...,vn}.设所求的最小生成树T=...
分类:
编程语言 时间:
2015-03-17 00:49:23
阅读次数:
298
自荐者和推荐者请留言
基本算法
贪心算法:贪心算法 作者:独酌逸醉
贪心算法精讲 作者:3522021224
递归和分治:递归与分治策略 作者:zhoudaxia
图论
图的遍历(DFS和BFS): 图的遍历 作者:jefferent
最小生成树(Prim算法和Kruskal算法): 贪心算法--最小生成树 作者:独酌逸醉
Dij...
分类:
编程语言 时间:
2015-03-11 17:18:33
阅读次数:
185
最小生成树最小生成树即用最少的边权将所有给定的点连在同一联通分量中,常用kruskal和prim算法kruskal算法(适合稀疏图)最小生成树的kruskal算法,稍带并查集的应用int find(int x){ return fa[x]==x?x:fa[x]=find(fa[x]); //不...
分类:
其他好文 时间:
2015-03-11 16:35:21
阅读次数:
170
最小生成树
给定一个无向图,如果它的某个子图中任意两个顶点都互相连通并且是一棵树,那么这棵树就叫做生成树,如果边上有权值,那么使得边权和最小的生成树叫做最小生成树。
常见的求解最小生成树的算法有Kruskal算法和Prim算法,生成树是否存在和图是否连通是等价的,所以假定图是连通的。
Prim算法
假设有一棵只包含一个顶点v的数T,然后贪心地选取T和其他顶点之间相连的最小权值的边,并把它加...
分类:
编程语言 时间:
2015-03-10 21:36:15
阅读次数:
225
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。
克鲁斯卡尔(Kruskal)算法(只与边相关)
算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。...
分类:
编程语言 时间:
2015-03-10 17:16:34
阅读次数:
168
很裸地求最小生成树的题目。题意就不多说了,最重要的就是记录一下学会了prim算法。初学prim,给我的第一感觉就是和dijkstra好像啊,感觉两者的区别还是有的:1:prim是求最小生成树的算法。 dijkstra是求最短路的算法。2:prim中dis保存的是未加入集合的点,加入集合需要的代价,....
分类:
Web程序 时间:
2015-03-10 16:55:23
阅读次数:
202
1、概念:给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树.
2、应用:例如:要在n个城市之间铺设光缆,主要目标是要使这
n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。这就需要找到带权的最小生成树。
3、求最小生成树的算法
3.1 普里姆(Prim)算...
分类:
编程语言 时间:
2015-03-10 12:13:41
阅读次数:
261
题目描述 Description
农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了使花费最少,他想铺设最短的光纤去连接所有的农场。 你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。 每两个农场间的距离不会超过100...
分类:
其他好文 时间:
2015-03-08 14:22:37
阅读次数:
168