【第22期】观点:IT 行业加班,到底有没有价值?

用于不相交集合的数据结构

原创 2017年01月03日 09:51:56

不相交集合的操作

MAKE-SET(x):建立一个集合,它的唯一成员(因而为代表)是x。因为各个集合是不相交的,所以x不会出现在别的某个集合中
UNION(x,y):将包含x和y的两个集合合并。假定操作之前着两个集合是不相交的。
FIND-SET(x):返回一个指针,这个指针指向包含x的(唯一)集合的代表。

不相交集合的链表表示

屏幕快照 2017-01-03 09.50.58

不相交森林集合

  1. 按秩合并:秩表示该节点高度的一个上界,总是秩小的树接到秩大的树
  2. 路径压缩:屏幕快照 2017-01-01 22.00.24

秩:x.rank,代表x的高度

MAKE-SET(x)
    x.p = x
    x.rank = 0
//按秩合并   
UNION(x,y)
    LINK(FIND-SET(x),FIND-SET(y))    
LINK(x,y)
    if x.rank > y.rank
        y.p = x
    else
        x.p = y
        if x.rank == y.rank
            y.rank = y.rank + 1
//带有路径压缩的FIND-SET 
FIND-SET(x)
    if x != x.p
        x.p = FIND-SET(x.p)
    return x.p

FIND-SET过程是一个两趟方法,递归时,第一趟沿着查找路径向上找到根,递归回溯时,第二趟沿着搜索树向下更新节点,使其直接指向根

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

不相交集ADT

不相交集ADTADT的知识很简单, 类似于游标, 但还有它的专业解释等价关系等价关系是满足下列三个性质的关系R: (自反性)对于所有的a∈S,aRa (对称性)aRb当且仅当bRa (传递性)若...

数据结构之不相交集的应用例程

/* 8-6 不相交集的类架构*/ class DisjSets { public: explicit DisjSets( int numElements ); in...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

数据结构——不相交集

在讲解不相交集之前,首先要说明的一点如果我们不讨论图论算法中的Kruskal算法的话,那么不相交集可以不学,但显然我们将会讨论Kruskal算法(尽管不深,但作为知名的图论算法之一,我们之后还是会提到...

不相交集 C实现

不相交集基本历程 头文件 #ifndef _disjSet_H #define _disjSet_H typedef int* disjSet; void initial(disjSet S,...

不相交集合(并查集)

不相交集合(两集合中没有相交元素),因为只能 进行合并和查找所求元素所在的集合,因此被称为并查集,至于怎么标志哪一个集合,可以使用集合的头结点(使用链表表示并查集),若果返回的元素一样则表示为同一个集...

并查集(不相交集)C++实现

并查集类申明: disjoinset.h文件 #ifndef __DIS_JOIN_SET_H__ #define __DIS_JOIN_SET_H__ #include #include...

不相交集合

定义不相交集合数据结构支持以下操作: 1.MakeSet(x):创建一个单元素集合{x} 2.Find(x):返回包含元素x的集合的ID号 3.Union(x, y):融合包含x元素的...

实用算法实现-第12篇 不相交集合(并查集)

12.1    不加按秩合并启发式的并查集 并查集可以进行两方面的启发式,一种是按秩合并,也就是使得包含较少结点的树的根指向包含较多结点的树的根。另一种是路径压缩,也就是使得查找路径上的每个结点都直...
  • fsdev
  • fsdev
  • 2011-10-21 12:18
  • 987

不相交集类算法

1、不相交集类的算法: 这是处理等价问题的一种算法,这里的等价指的是集合,a与b等价,是指a∈S,b∈S。通过不相交集类的两个基本操作find就可找出a和b的集合标志是否一致,若一致则说明它们是一个集...

[算法导论读书笔记]用于不相交集合的数据结构(并查集)

不相交集合数据结构的概念和操作:     不相交集合数据结构(disjoing-set data structure)保持一组不相交的动态集合S={S1,S2,S3,……Sk}。每个集合通过一个代表...
  • lalor
  • lalor
  • 2012-03-23 21:11
  • 3412
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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