如果我知道两个集合中的一个将比另一个更大,是否有任何推荐的方法来调用Set.union? Set.union large small 要么 Set.union small large 谢谢 在内部,集合表示为平行树(您可以 check the source online)
Set.union large small
要么
Set.union small large
谢谢
在内部,集合表示为平行树(您可以 check the source online).在计算集合的并集时,算法将较小的集合(树)基于来自较大集合(树)的根的值分成一组较小的元素和一组较大的元素.拆分总是在较小的集合上执行,以减少工作量.然后它递归地联合两个左右子集并执行一些重新平衡.总结是,算法并不真正取决于哪个集合是第一个集合,哪个集合是第二个参数.它将始终根据集合的大小(存储为数据结构的一部分)选择更好的选项.