网上有很多关于不相交集结构的描述和例子。
在某些情况下,对于每个集合,它都存储“排名”。当一个集合合并到另一个集合中时,如果它们的等级相同,则前者的等级增加 1。
在其他情况下,对于每个集合,它都会存储其大小。当一个集合合并到另一个集合中时,它们的大小会被添加。
在这里它存储排名。
在维基百科文章中,它存储排名。
在康奈尔大学的讲义中,它存储了排名。
在Sedgewick 和 Wayne的“算法”示例中,它存储大小。
科门等人。写:
显而易见的方法是使具有较少节点的树的根指向具有更多节点的树的根。我们将使用一种简化分析的方法,而不是显式地跟踪以每个节点为根的子树的大小。对于每个节点,我们维护一个等级,它是节点高度的上限。在按秩联合中,我们在 UNION 操作期间使秩较小的根指向秩较大的根。
哪个更好/更合适?