13周依旧过得很快,因为数据结构里有讲最小生成树的算法,因此也就跟着老师的节奏去学习这方面的知识。最小生成树目前接触到两种方法,一种是Prim 算法,一种是Kruskal算法。目前只学习了前者,相关题目还没有做,准备下周写一些。另外,下个周末有近代史和英语四级的考试,可能下周会着重复习这 些。感觉....
分类:
其他好文 时间:
2015-06-06 23:26:09
阅读次数:
195
~. 最近数据结构课讲到了prim算法,然而一直使用kruskal算法的我还不知prim的思想,实在是寝食难安,于此灯火通明之时写此随笔,以祭奠我睡过去的数据结构课。一,最小生成树之prim prim的思路就是先任取一点(记为st)加入集合(数组s[]) ,然后在顶点集(数组v[]) 中 未被取的....
分类:
编程语言 时间:
2015-06-05 00:07:54
阅读次数:
165
根据图的深度优先遍历和广度优先遍历,可以用最少的边连接所有的顶点,而且不会形成回路。这种连接所有顶点并且路径唯一的树型结构称为生成树或扩展树。实际中,希望产生的生成树的所有边的权值和最小,称之为最小生成树。
常见的最小生成树算法有Kruskal算法和Prim算法。
Kruskal算法每次选取权值最小的边。然后检查是否加入后形成回路,如果形成回路则需要放弃。最终构成最小生成树。n个顶点的图最小生...
分类:
编程语言 时间:
2015-06-04 17:10:21
阅读次数:
151
一、数论算法 1.求两数的最大公约数 2.求两数的最小公倍数 3.素数的求法 A.小范围内判断一个数是否为质数: B.判断longint范围内的数是否为素数(包含求50000以内的素数表):二、图论算法1.最小生成树A.Prim算法: B.Kruskal算法:(贪心) 按权值递增顺序删去图中的边,若...
分类:
编程语言 时间:
2015-06-02 21:53:26
阅读次数:
186
题目1 : 最小生成树三·堆优化的Prim算法时间限制:10000ms单点时限:1000ms内存限制:256MB描述回到两个星期之前,在成功的使用Kruscal算法解决了问题之后,小Ho产生了一个疑问,究竟这样的算法在稀疏图上比Prim优化之处在哪里呢?提示:没有无缘无故的优化!输入每个测试点(输入...
分类:
编程语言 时间:
2015-06-02 14:39:50
阅读次数:
844
最小生成树是指包含图中所有的顶点而又没有环并且所有边的权值最小的子图,由于这张图没有环,所以就是一棵树。比较流行的两种找到最小生成树的算法有Kruscal算法和Prim算法。本文在代码注释里写明算法的原理和实际计算步骤,然后贴出两种算法运行的结果示例,最后证明算法的正确性。...
分类:
其他好文 时间:
2015-05-29 09:59:36
阅读次数:
167
普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex
(graph theory)),且其所有边的权值之和亦为最小
图例
说明
不可选
可选
已选(Vnew)
此为原始的加权连通图。每条边一侧的数字...
分类:
编程语言 时间:
2015-05-27 15:58:39
阅读次数:
164
今天从志权师兄那里学会了最小生成树。所谓生成树,就是n个点之间连成n-1条边的图形。而最小生成树,就是权值(两点间直线的值)之和的最小值。
首先,要用二维数组记录点和权值。如上图所示无向图:
int map[7][7];
map[1][2]=map[2][1]=4;
map[1][3]=map[3][1]=2;
...
分类:
编程语言 时间:
2015-05-27 15:55:32
阅读次数:
199
Prim算法求最小生成树#include
#include
#include
using namespace std;
const int N=110;
const int INF=0x3f3f3f3f;
int n,ans;
int map[N][N],dis[N],vis[N];
void Prim(){
int i;
for(i=1;i<=n;i++){
...
分类:
其他好文 时间:
2015-05-27 13:54:36
阅读次数:
150
题意:就是求最小生成树的边权值和prim算法求最小生成树 1 import java.util.Scanner; 2 import java.util.Arrays; 3 /* 4 prim 5 */ 6 public class Main{ 7 static int map[][]; ...
分类:
其他好文 时间:
2015-05-18 01:04:00
阅读次数:
220