【发布时间】:2017-11-11 14:20:51
【问题描述】:
这是数据结构书籍中的一段,作者 Narasimha Karumanchi (disjoint set ADT)
快速查找实现(快速查找)
此方法使用数组,其中数组包含每个元素的集合名称。
在这个表示中执行 union(a,b)[假设 a, 在集合 i 中,b 在集合 j 中] 我们需要扫描整个数组并将所有 i 更改为 j。这需要 O(n)。
我的问题 1
如果 find 操作需要 O(1) 那么为什么扫描完整的数组并将所有 i 更改为 j 只需要更改其中两个,所以它是 O(n)
============
(书 8.8 部分)
使用存储每个元素的父元素的数组而不是使用 root 作为其集合名称,解决联合 O(n)我的 2. 问题
它如何解决使用父级的问题? 以及根方法和父方法如何为我们提供倾斜树?
【问题讨论】:
-
请把书寄给我——我的地址是.....
标签: c algorithm data-structures union-find