2012-07-21 55 views
0

我嘗試在C++中編碼組件標籤代碼使用雙連接算法。您可能想看到https://en.wikipedia.org/wiki/Connected-component_labeling。在該算法中有一個名爲union-find的數據結構。由於我無法理解算法如何使用該結構,因此我無法獲得該結構並且無法對其進行編碼。 你知道如何在該算法中使用union-find,或者至少在C++環境中是否有任何本地庫,或者你是否知道任何來源來理解該結構。也許動畫可能是有用的。在4連接兩遍算法中尋找聯合發現

+0

這可以在http://stackoverflow.com/questions/14347065/2d-array-neighboring-algorithm/14350691#14350691 – mmgp 2013-01-25 05:04:26

回答

1

聯盟查找的數據結構也被稱爲「不相交集」。實際上您可以在其Wikipedia頁面找到更多描述和分離集信息(http://en.wikipedia.org/wiki/Disjoint-set_data_structure)。關於不相交集數據結構的更詳細的介紹請參見「算法導論」第21章(也參見Wikipedia頁面的參考文獻1)。

通常當我們談論不相交集數據結構,我們正在談論一個名爲「不相交集森林」的具體實現。這個具體實現的好處在於:1)實現起來非常簡單2)具有完美的時間複雜度(幾乎不變)。

你也可以在維基百科頁面或我剛纔提到的書的第21章中找到如何實現不相交集森林的一些僞代碼。

+0

找到您可以在標記工具欄中使用globe/arrow按鈕添加超鏈接。 – Potatoswatter 2012-07-22 03:05:01