【数据结构与算法分析——C语言描述】第八章:不相交ADT

本文详细介绍了不相交集合数据结构(Disjoint Set),包括等价关系的概念、动态等价关系及其应用。文章探讨了等价类、动态等价关系的表示与操作,特别是Union/Find算法,强调了路径压缩和按秩求并在最坏情况下的性能。此外,还讨论了不同求并策略如按大小求并和按高度求并的效率,以及路径压缩对算法性能的影响。
摘要由CSDN通过智能技术生成

【数据结构与算法分析——C语言描述】第八章:不相交ADT

标签(空格分隔):【数据结构与算法】


第八章:不相交ADT

8.1 等价关系

  • 关系(relation) R:如果对于每一对元素 (a,b),aS,bS ( a , b ) , a ∈ S , b ∈ S , aRb a R b 或者为 true t r u e 或者为 false f a l s e ,则称在集合 S S 上定义 关系(relation) R.如果 (a,b) ( a , b ) true t r u e ,那么我们说 a a b b 有关系。
  • 等价关系(equivalence relation)是满足以下三条性质的等价关系 R:

    1. 自反性:对于所有的 aS a ∈ S ,有 aRa a R a .
    2. 对称性: aRb a R b 当且仅当 bRa b R a .
    3. 传递性:若 aRb a R b bRc b R c aRc a R c

      • 举例:
        1.关系 “ ” 不是等价关系,虽然它是自反的, aa a ≤ a , 可传递的, ab,bc a ≤ b , b ≤ c ac a ≤ c ,但是它不是对称的,因为依据 ab a ≤ b 不能得到 ba b ≤ a
        2.电器连通性(electrical connectivity):是一个等价关系,其中所有的连接都是通过金属导线完成的。该关系显然是自反的,因为任何元件都是以自身相连的。如果 a 电气连接到 b 上,那么 b 一定也可以连接到 a 上。最后,如果 a 连接 b,b 连接 c,那么 a 连接到 c。因此,电器连接是一个等价关系。
        3.如果两个城市位于一个国家之内,那么定义它们是有关系的,容易验证这是一个等价关系。
        4.如果能够通过公路从城镇 a 到城镇 b,那么假设二者存在关系,假设道路可以双向行驶,那么这种关系也是一种等价关系。

8.2 动态等价关系

  • 给定一个等价关系 ” ~ ” ,一个自然的问题是,给定 a 和 b 是否有 a ~ b.如果将等价关系存储为一个二维的布尔数组,那么这个工作便可以在常数时间内完成。问题在于,这种等价关系的定义通常不明显,甚至是相当隐蔽的。

  • 举例:
    假设在 5 个元素的集合 { a1,a2,a3,a4,a5} { a 1 , a 2 , a 3 , a 4 , a 5 } 定义一个等价关系,此时,便存在 25 对元素,它们每一对或者有关系,或者没有关系。然而 ,信息 a1 a 1 ~ a2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值