在離散數(shù)學中,對等價關系和等價類的定義是:
如果集合S中的關系R是自反的、對稱的和傳遞的,則稱它為一個等價關系。
等價關系是現(xiàn)實世界中廣泛存在的一種關系,許多應用問題可以歸結至等價類問題,這類問題通常被稱為等價問題。
通過使用集合,能夠解決等價問題。而集合可以通過雙親表示法的樹結構進行保存。通過對樹結構的操作,可以實現(xiàn)查找、歸并等操作。查找操作和歸并操作的算法如下:
在以上的歸并操作中,由于表示集合的樹的深度與樹形成的過程有關,因此在最壞情況下全部歸并操作將會有O(n2)的復雜度。而通過在歸并時比較子集所含成員的數(shù)目,令成員少的歸并至成員多的集合,將能夠提高算法的效率。下面給出優(yōu)化的歸并操作算法:
另外,通過增加“壓縮路徑”的功能,即將所有從根到相應元素路徑上的元素都變成樹根的孩子。算法如下所示:
本題中,將會給出n個原本互不相交的集合及k次集合合并的操作。通過這k次合并,判斷最終的某兩個原始的集合是否被合并成了同一個集合。