zoukankan      html  css  js  c++  java
  • 并查集-Java实现

    借鉴百度百科的解释,并查集就是在一些有N个元素的集合问题中,开始的时候让每个元素成为自己的集合,然后按照一定的顺序将属于同一组的元素所在的集合进行合并(合并的是集合),在合并的期间需要方法查找元素所在的集合。并查集的原理比较简单,解决的问题的特点是看似并不复杂,但数据量极大。例如:图的连通子图问题,一个图里面有几个连通子图,判断这幅图是否连通等。若用正常的数据结构来描述,往往时空复杂度会过高。并查集是一种树形数据结构,用于处理一些不相交集合的合并和查询问题。并查集的原理就是朋友的朋友就是我的朋友。
    基本
    正如名字表达的那样,并查集需要合并和查询集合,所以并查集一般需要一个数组和两个函数:int[] parent, int find(int element)和void unionElements(int firstOne, int secondOne)。
    parent数组用来记录每个元素的前导点,也就是确定该元素所在的集合id;find函数用来查找某元素所在的集合id;unionElements用来合并不同的集合。其基本过程如下图所示。

  • 相关阅读:
    C++中四大强制类型转换!
    队列(queue)的实现
    栈(stack)的实现
    单向链表
    十种排序算法详解及C++实现
    extern “C”
    C语言内存分配及各种数据存储位置
    Python中的classmethod与staticmethod
    关于ORM,以及Python中SQLAlchemy的sessionmaker,scoped_session
    Python中的SQLAlchemy
  • 原文地址:https://www.cnblogs.com/Ran0707-0721/p/14077596.html
Copyright © 2011-2022 走看看