什麼是Union Find 並查集 ?

2021-10-10 10:47:18 字數 526 閱讀 6739

並查集是一種屬性資料結構 用於處理一些不交集disjoint sets的合併以及查詢問題。

但是光這麼說也太他媽抽象了。

不如看兩個應用場景:

網路連線判斷:

如果每個pair中的兩個整數分別代表乙個網路節點,那麼該pair就是用來表示這兩個節點是需要連通的。那麼為所有的pairs建立了動態連通圖後,就能夠盡可能少的減少佈線的需要,因為已經連通的兩個節點會被直接忽略掉。

變數名等同性(類似於指標的概念):

在程式中,可以宣告多個引用來指向同一物件,這個時候就可以通過為程式中宣告的引用和實際物件建立動態連通圖來判斷哪些引用實際上是指向同一物件。

這兩個應用場景 說實話 也抽象的一批。

通俗一點講:

我們並不關心所有的輸入哪個和哪個是相連的 每個之間是否直接相連什麼的

我們所關心的是 針對所輸入的一大堆邊 我們要快速講這些節點劃分到不同的圖裡面(union部分) 然後如果以後我們需要判斷某兩個節點時候屬於同乙個圖 我們可以用find()函式實現。至於每個圖內部是如何相連的 我一點都不關心。

並查集路徑壓縮 並查集 UnionFind 入門

咳咳,剛看完海賊更新,馬上呼哧呼哧寫下這篇文章,這週的目標就是出一篇並查集相關的文章,真的是時間咻咻一下就沒了。本文閱讀大概需要3分鐘。好了,並查集呢,英文叫union find 並查集是一種樹型的資料結構,通常來用於處理一些不相交集合的合併 union 問題,以及查詢 find 問題。如下 1 有...

演算法合集 並查集union find

並查集演算法主要分為quic find,quick union以及union find方法。但出於效率考慮,一般使用union find演算法進行實際操作。union find演算法的思想就是利用乙個陣列id記錄每個節點的父節點,例如現要將節點1 id 1 1 連線到節點2 id 2 2 則令id ...

團夥 並查集 什麼是 「並查集」 ?

本文作者封承成,年僅12歲,非常感謝他的投稿。並查集是什麼 並查集,是一種判斷 遠房親戚 的演算法。打個比方 你身邊的某個 朋友 很有可能就是你父親的母親的姑媽的大姨的哥哥的表妹的孫子的女兒的父親的孫子。如果給定這麼一張 家譜 無向圖 如何判斷兩個頂點是不是 親戚 呢?用人話說,就是判斷乙個圖中兩個...