disjoint-sets

    2熱度

    1回答

    我們用樹實現了Disjoint Data結構。在這個數據結構makeset()中創建一個具有一個元素的集合,merge(i, j)合併兩棵樹集合i和j,使得高度較低的樹成爲第二棵樹的根的孩子。如果我們以隨機方式做nmakeset()操作和n-1 merge()操作,然後做一個查找操作。在最壞的情況下,查找操作的成本是多少? I) O(n) II) O(1) III) O(n log n) I

    0熱度

    2回答

    首先,我大多用python做了非常平凡的事情,所以我對pythonic語法並不是很熟悉。我正在學習不相交集合,並對實現有基本的瞭解。 我遇到了python forest-implementation(不是我的!),並且在瞭解__init__的字典工作方式時遇到了很多困難。維基百科的例子很簡單,可以遵循(這個實現基於the wiki's pseudocode)。格外,這條線是非常陌生的我 def _

    0熱度

    1回答

    我想用DisjSet算法建立一個迷宮。我覺得我已經把它放下了,但由於某種原因,我無法弄清楚爲什麼我一直在我使用的類中的一個類中出現空指針異常。任何幫助將不勝感激 這是迷宮類 package project3; public class Maze2 { private void nextRoom(int[] room, int wall, int n) { int row

    1熱度

    1回答

    我找的不相交集的圖形G數,然後我刪除圖形G的一些頂點,使圖形G',我想找到G'的獨立集合的數量不相交集的數目,沒有像G那樣對G'做同樣的事情嗎?

    3熱度

    2回答

    對於不熟悉不相交集合數據結構的人員。 https://en.wikipedia.org/wiki/Disjoint-set_data_structure 我試圖找到沒有。來自特定朋友的朋友羣體及其關係。當然,毫無疑問,這可以使用BFS/DFS輕鬆實現。但是我選擇使用不相交集合,我也傾向於找到該人屬於的朋友組等等,並且在這種情況下,脫節設置聽起來是合適的。 我已經實現了不相交集數據結構,現在我需要找

    0熱度

    1回答

    我正在研究一個涉及集羣的小型項目,我認爲這裏給出的代碼https://www.ics.uci.edu/~eppstein/PADS/UnionFind.py可能是我工作的一個很好的起點。然而,我所遇到它實現我的作品一些困難: 如果我讓我的包含所有簇集羣=集([0,1,2,3,4一組,..., 99))(有100個數字標記它們的數字),那麼我想將這些數字分組爲簇,我只是寫了cluster = Uni

    0熱度

    1回答

    獨立集合問題 設A和B兩套,都脫節? 問題 證明任何算法用於解決不相交的集合至少需要O(n日誌n)的。 我想到的想法是證明排序可以歸結爲不相交集合問題。 我該怎麼做?

    0熱度

    1回答

    在我的問題中,我有一堆元素(類元素)。假設我有1000個元素。這些元素最初是不相關的,這意味着它們在自己的集合中。 後來我需要使用聯合操作來合併一些基於我的程序流程的這些集合。 我打算使用增強庫的disjoint_set(http://www.boost.org/doc/libs/1_57_0/libs/disjoint_sets/disjoint_sets.html) 我的問題是如何列出給定代表

    1熱度

    1回答

    我需要製作一個不相交的類型dataum。 我在載體中的所有數據如下 vector<dataum> S; S.push_back(dataum(0,0)); S.push_back(dataum(0,1)); S.push_back(dataum(0,2)); . . 然後,我創建了disjoint_set std::vector<int> rank (100); std::vect

    6熱度

    1回答

    我試圖找到使用apache spark在大量數據上搜索不相交集合(連接組件/ union-find)的算法。 問題是數據量。甚至圖形頂點的原始表示也不適合在單個機器上運行。邊緣也不適合公羊。 源數據是hdfs上的圖邊的文本文件:「id1 \ t id2」。 id以字符串值存在,而不是int。 樸素的解決方案,我發現是:邊緣 取RDD - >[id1:id2] [id3:id4] [id1:id3]