資料結構之並查集Union Find

2021-10-03 23:25:59 字數 682 閱讀 6558

1、簡介

判斷網路中節點間的連線狀態,網路抽象概念,使用者之間形成的網路

2、作用

(1)數學中集合類實現

(2)連線問題和路徑問題, 檢查是否相連

(3)合併和查詢

3、特點

(1)將每乙個元素看成乙個節點,由指向自己指向對應的下乙個節點

(2)犧牲了查詢的效能

4、基於size的優化

考慮節點數,考慮樹的高度,不要盲目,得到新的樹不要高度過分增加,深度盡量不增加,節點數少的指向節點數多的一方

5、基於rank的優化

rank[i]表示根節點為i的樹的高度

6、路徑壓縮

相互連線方式不同,同時表示路徑連線,實現合理連線提高效能,讓一顆高樹壓縮成低樹,不斷查詢根節點

7、並查集的時間複雜度分析

o(h),複雜,壓縮後的o(log*n)

log*n--

--iterated logarithm

當n<=

0,0;當n>

1,1+log*

(logn)

資料結構之並查集

並查集 union find sets 是一種簡單的用途廣泛的集合.並查集是若干個不相交集合,能夠實現較快的合併和判斷元素所在集合的操作,應用很多,如其求無向圖的連通分量個數 最小公共祖先 帶限制的作業排序,還有最完美的應用 實現kruskar演算法求最小生成樹。其實,這一部分 演算法導論 講的很精...

資料結構之並查集

覺得很不錯的參考資料引用一下 陣列實現 合併操作代價高,可達o n 2 鍊錶實現 樹結構實現 查詢與合併的平均時間複雜度為o log 2 n 與樹的深度有關,優化 降低時間複雜度 按秩合併 若h b h b,則將b樹作為a樹的子樹。帶路徑壓縮的查詢演算法 改變結點所指方向以減小深度,查詢路徑時 走兩...

資料結構之並查集

1.將兩個集合合併。2.詢問兩個元素是否在乙個集合當中。複雜度近乎o 1 基本原理 每個集合用一棵樹來表示。樹根的編號就是整個集合的編號。每個節點儲存它的父節點,p x 表示x的父節點。問題1 如何判斷樹根 if p x x 問題2 如何求x的集合編號 while p x x x p x 問題3 如...