数据结构课件-第09--11章 不相交集; 排序; 查找.pptx

数据结构课件-第09--11章 不相交集; 排序; 查找.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数据结构

计算机领域本科教育教学改革试点

工作计划(“101计划”)研究成果

101

不相交集

第9章

陈键飞

清华大学

9.1 问题引入

9.2 等价关系、等价类和不相交集

9.3 不相交集的存储实现

9.4 不相交集的基本运算实现

9.5 不相交集的应用

9.6 拓展延伸

9.7 应用场景

9.1问题引入:Kruskal算法的高效实现

9.1问题引入

数据结构

9.1问题引入:Kruskal算法的高效实现

9.1问题引入

数据结构

9.1问题引入:Kruskal算法的高效实现

9.1问题引入

数据结构

注意:只需要查询顶点之间是否连通,不关心它们具体通过哪条路径连通

此外,只需要支持加边操作,而不需要支持删边操作。

这种情况下,与其完整地维护无向图的结构,不如直接维护连通分量构成的集合

每个连通分量用其中顶点的集合表示。

连通性查询问题变成了维护若干不相交的集合,并动态地合并、查找的问题。

9.1问题引入:Kruskal算法的高效实现

9.1问题引入

数据结构

9.2等价关系、等价类和不相交集

9.2等价关系、等价类和不相交集

数据结构

不相交集与数学中等价关系、等价类的概念密切相关

元素之间的等价关系自然地定义了若干不相交集的集合

因此,不相交集常常用于处理等价性查询的问题

例如,两个顶点在同一连通分量中就可以看做一种等价性

9.2等价关系、等价类和不相交集

9.2等价关系、等价类和不相交集

数据结构

9.2等价关系、等价类和不相交集

9.2等价关系、等价类和不相交集

数据结构

例9.1.不同问题中的等价关系:

9.2等价关系、等价类和不相交集

9.2等价关系、等价类和不相交集

数据结构

对集合中的任意元素,称所有与其等价的元素为一个等价类:

等价关系把集合划分成若干个不相交的等价类,每个等价类中的元素互相等价。

称所有等价类构成的集合为一个商集。

商集是一系列集合,这些集合彼此不相交,并且其并集是全集X。这与不相交集的概念恰好对应。

9.2等价关系、等价类和不相交集

9.2等价关系、等价类和不相交集

数据结构

9.2等价关系、等价类和不相交集

9.2等价关系、等价类和不相交集

数据结构

不相交集可以用于等价性的动态查询。

等价性的查询在计算机科学中有广泛应用。例如,在编译器的设计中,用于判断符号地址的等价性。

9.3不相交集的存储实现

9.3不相交集的存储实现

数据结构

不相交集数据结构定义:

例:考虑集合X={1,2,3,4,5,6,7,8}。

合法的划分:{{1,2,3,4,5},{6,7},{8}}或{{1}{2},{3},{4},{5},{6},{7},{8}};

以下不是集合X的划分:{{1,2,3,4,5},{6,7}}和{{1,2,3},{3,4,5},{5,6,7,8}}。

9.3不相交集的存储实现

9.3不相交集的存储实现

数据结构

不相交集的数据结构需要动态处理集合的合并和查询操作,其ADT定义如下:

9.3不相交集的存储实现

9.3不相交集的存储实现

数据结构

9.4不相交集的基本运算实现

9.4不相交集的基本运算实现

数据结构

9.4不相交集的基本运算实现

9.4不相交集的基本运算实现

数据结构

9.4不相交集的基本运算实现

9.4不相交集的基本运算实现

数据结构

9.4.1按秩合并

9.4不相交集的基本运算实现

数据结构

9.4.1按秩合并

9.4不相交集的基本运算实现

数据结构

采取按秩合并策略后,InitSet和Union操作的实现调整为算法9-4、算法9-5:

9.4.1按秩合并

9.4不相交集的基本运算实现

数据结构

9.4.1按秩合并

9.4不相交集的基本运算实现

数据结构

9.4.2路径压缩

9.4不相交集的基本运算实现

数据结构

9.4.2路径压缩

9.4不相交集的基本运算实现

数据结构

9.4.2路径压缩

9.4不相交集的基本运算实现

数据结构

下图演示了同时采用按秩合并和路径压缩策略时,8个元素构成的不相交集的合并过程。

采用了按秩合并和路径压缩的

不相交集运行示例

9.4.2路径压缩

9.4不相交集的基本运算实现

数据结构

9.4.2路径压缩

9.4不相交集的基本运算实现

数据结构

9.4.3时间复杂度分析

9.4不相交集的基本运算实现

数据结构

9.4.3时间复杂度分析

9.4不相交集的基本运算实现

数据结构

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档