【MST最短路径】Prim算法和Kruskal算法

最小生成树问题有两种经典的算法,分别是Prim和Kruskal,他们的代码有很多种,但要使复杂度更低,算法的具体实现过程还是值得讨论的:

这里分别给出相对复杂度更低一点的代码:

Prim:

struct node{
   
	int u,w;
	node(){
   };
	node(int a, int b)
	{
   
		this->u = a;
		this->w = b;
	}//构造函数
	bool operator<(const node& a)
	const{
   
		return this->w > a.w
	}//比较运算函数用以建优先队列
}Edge[101];

struct node2{
   
	int len;
	int v[101];
	int w[101];
}V[101];

上述步骤已经顺利写出了两组数据结构,第一组是储存待会构造优先队列的数据,第二组是储存我们输入的边、点集,接下来是主函数:

int main()
{
   
	int N,i,a,b,c;
	for(i = 0; i <= 100; i++)
		V[i].len = 0;
	scanf("%d",&N);
	while(scanf("%d%d%d",&a,&b,&c)
	{
   
		V[a].v[len] = b;
		V[a].w[len++] =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值