并查集的实现

原创 2018年04月17日 21:24:18
#include <iostream>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 10000
using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int par[MAX];
int rank[MAX];
void unit(int n)
{
	for(int i=0;i<n;i++)
	{
		par[i]=i;
		rank[i]=0;
	}
} 
int find(int x)
{
	if(par[x]==x)
	{
		return x;
	}
	else
	{
		return par[x]=find(par[x]);//调整高度 
	}
}
void unite(int x,int y)
{
	x=find(x);
	y=find(y);
	if(x==y)
	{
		return;
	}
	if(rank[x]<rank[y])//x!=y将x放到y子树 
	{
		par[x]=y;
	}
	else
	{
		par[y]=x;//将y放x子树 
		if(rank[x]==rank[y])
		{
			rank[x]++;
		}
	}
 } 
 bool same(int x,int y)
 {
 	return find(x)==find(y);
 }
 int main(void)
 {
 	return 0;
 }

并查集的简介及其C/C++代码的实现及优化

文章来自 《并查集的简介及其C/C++代码的实现》  http://blog.csdn.net/stpeace/article/details/46506861 《并查集的“并优化”(leader...
  • Aiphis
  • Aiphis
  • 2015-09-02 20:03:44
  • 504

并查集实现(C语言)

实现了最基本的并查集,可以用宏 path_compress 开关路径压缩. #include #include #include #define MAXNUM 20 int parent...
  • zhulei632
  • zhulei632
  • 2011-08-26 09:53:31
  • 3077

C++实现并查集

将N个不同的元素分成一组不相交的集合。 开始时,每个元素就是一个集合,然后按规律将两个集合进行合并。 假如已知有n个人和m对好友关系(存于数组r),如果两个人是直接的或间接的好友关...
  • qingdou_aixuexi
  • qingdou_aixuexi
  • 2016-09-28 23:46:38
  • 577

并查集的使用及其实现

并查集概述性质并查集算法(union_find sets)不支持分割一个集合,求连通子图、求最小生成树用法并查集是由一个数组pre[],和两个函数构成的,一个函数为find()函数,用于寻找前导点的,...
  • The_best_man
  • The_best_man
  • 2017-03-16 11:13:25
  • 10906

Kruskal算法的并查集实现

最小生成树的kruskal算法的伪代码如下 w[i]为边的权值,u[i],v[i]分别为边的端点的下标 mst为最小生成树的所有边的结合 n为顶点的个数 m为边的个数将边按权值排序w[0]...
  • HE19930303
  • HE19930303
  • 2015-07-19 21:33:11
  • 990

并查集C++实现

#include using namespace std; class UF { //cnt is the number of disjoint sets. //id is an arr...
  • u014682691
  • u014682691
  • 2016-07-23 14:52:24
  • 996

使用STL实现并查集

我以最入门的并查集水题——宗教信仰为例,来演示使用STL里的multimap(多重映照容器)模拟并查集数据结构(并查集应该也可以用其他STL实现,这里我仅以multimap为例)。 Multimap...
  • lhrsdl
  • lhrsdl
  • 2014-07-25 15:43:00
  • 1806

并查集的树形实现(C++)(转载)

摘要:本文介绍了通用并查集的树形实现,通过压缩路径和维持数的平衡,可以保证 查找和合并的平均时间复杂度为O(1)! 关键字:并查集,UnionFind,树形 并查集基本知识参见博文《...
  • wusecaiyun
  • wusecaiyun
  • 2015-10-12 20:54:29
  • 503

小谈并查集及其算法实现

并查集   一、算法介绍: 并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。   并查集的基本操作有两个: 1:合并 union(x, ...
  • hpuhjh
  • hpuhjh
  • 2015-08-21 14:49:36
  • 3187

快速并查集(Java实现)

在一些应用的问题中,需将n个不同的元素划分成一组不相交的集合。开始时,每个元素自成一格单元素集合,然后按一定顺序将属于同一组的元素的集合合并。其间要反复用到查询某个元素属于哪个集合的运算。适合于描述这...
  • why_still_confused
  • why_still_confused
  • 2016-05-25 14:09:15
  • 2638
收藏助手
不良信息举报
您举报文章:并查集的实现
举报原因:
原因补充:

(最多只允许输入30个字)