0

假设我们使用链表表示来表示每个集合,其中每个节点有 3 个字段,即值、下一个指针和指向集合代表的指针。我们为每个集合维护一个索引对象(或代表),其中包含 3 个字段头、尾和计数(集合中元素的计数)。

对于集合的并集,我们需要为每个元素创建一个新集合,然后对它们进行并集。

n 个元素的每个创建操作都需要 O(1) 时间,因此总计 = O(n)。

现在在联合过程中,我们以这样一种方式组合元素,将较低计数的集合附加到较高计数的集合。因此,n 个集合的并集时间复杂度为 O(n)。

总时间复杂度 =O(n) + O(n) /2n = O(1)。

所以根据我的说法,联合操作的时间复杂度应该是 O(1),但在任何地方都写成 O(n)。为什么会这样?

4

0 回答 0