並查集演算法總結

2021-09-25 00:02:29 字數 1113 閱讀 4912

public class unionfind 

public int getcount()

public boolean isconnected(int p, int q)

public int find(int p)

public void union(int p, int q)

}

public class unionfind 

public int getcount()

public boolean isconnected(int p, int q)

public int find(int p)

public void union(int p, int q)

}

public class unionfind 

public int getcount()

public boolean isconnected(int p, int q)

public int find(int p)

public void union(int p, int q)

else

count--;

}}

public class unionfind 

public int getcount()

public boolean isconnected(int p, int q)

public int find(int p)

public void union(int p, int q)

else

count--;

}}

存在n個觸點時成本的增長數量級(最壞情況下)

演算法union()

find()

quick-find演算法n1

quick_union演算法

樹的高度

樹的高度

加權的quick_union演算法

lgnlgn

使用路徑壓縮的加權quick-union演算法

接近1接近1

參考 《演算法(第四版)》

演算法總結 並查集

搞了兩年acm,終於準備寫一些部落格了,總得留下點什麼。不了解並查集的話,推薦這個部落格學習,講的很有意思,當時笑出聲。下面寫一下自己的理解吧 並查集最簡單的用法,就是把不同的元素歸併到乙個集合裡。在集合裡選出乙個老大作為代表,集合裡的其他元素都是他的小弟。這樣,就可以判斷任意兩個元素是不是屬於同乙...

並查集演算法總結

並查集可以稱之為不相交集合,在處理查詢幾個元素是否在同一集合時使用並查集可以達到非常快的處理速度,並查集的思想有一點很重要,就是利用樹的思想,表示不同的不相交的集合狀態,利用根節點作為代表元素,來對整個集合的資料進行處理。並查集是一種非常精巧而實用的資料結構,主要用於處理一些不相交集合的合併問題,一...

並查集和帶權並查集(演算法總結)

並查集 what 並查集是一種用來管理元素分組情況的資料結構。作用 1.查詢元素a,b是否屬於同一組。2.合併元素a,b所在的組。結構 樹形,不是二叉樹。注意 防止樹形結構發生退化,將所有元素找到她的根節點,讓其父結點,直接為他的根節點,方便查詢。並查集模板 1.查詢 1 遞迴模式 複雜度高,不建議...