disjoint-sets

    0熱度

    1回答

    有許多不同的描述和例子可以在線使用不相交集結構。 在某些情況下,對於每組,它存儲「等級」。當一個集合被合併到另一個集合中時,前者的等級增加1,如果他們是同一等級的話。 在其他情況下,對於每組,它存儲其大小。當一個集合被合併到另一個集合中時,它們的大小被添加。 Here它存儲排名。 在the wikipedia article中,它存儲等級。 In the Cornell University le

    2熱度

    1回答

    我本來會期望這樣一個有用的數據結構被包含在C++ Standard Library中,但我似乎無法找到它。

    -1熱度

    1回答

    我構建了一個與Kruskal的MST算法一起使用的不相交集數據結構。我需要加載並結合一個包含200k個互連節點的圖,我認爲我的數據結構實現是一個瓶頸。 您有關於如何提高性能的建議嗎?我認爲我的查找方法可能有問題。 class partition(object): def __init__(self, element=None): self.size = 0 if

    0熱度

    1回答

    我明白,前者是一個data structure而後者則是一個mathematical structure。 但是實施時,他們似乎有着許多相同的特徵和行爲。 在不相交集合的每個元素可以被認爲是在一個圖形的頂點。圖中的邊代表Union-Find中的一組。 審查http://algs4.cs.princeton.edu/15uf/和http://algs4.cs.princeton.edu/42digr

    1熱度

    1回答

    我沒有找到任何好的實現在C#中脫節集使用按級聯實現所以我實現了我自己的。它工作在O(log n)時間複雜度。 有沒有更快(或在C#中的內置實現)或我可以使用我自己的實現? class DisjointSetUBR { int[] parent; int[] rank; // height of tree public DisjointSetUBR(int[] ar

    2熱度

    4回答

    給定多個迭代列表,我想測試所有項目是否爲disjoint。 兩組被認爲是不相交如果它們的共同點 實施例沒有元素: iterables = ["AB", "CDE", "AF"] all_disjoint(iterables) # False iterables = ["AB", "CDE", "FG"] all_disjoint(iterables) # True Python的集

    1熱度

    1回答

    我嘗試瞭解boost::disjoint_sets_with_storage,但即使是最簡單的示例也可能不起作用,我不明白爲什麼。 #include <boost/pending/disjoint_sets.hpp> int main(){ boost::disjoint_sets_with_storage<> union_find; union_find.make_set

    0熱度

    1回答

    我正在參加在線數據結構課程。這是我的Python合併和查找算法的實現。我按照說明操作,但運行時間遠遠超出了限制。任何人都可以看看嗎?它應該是一個簡單的。謝謝。 我們必須做'合併'或合併操作。 ()和()是具有實際數據的兩個表的數量。如果()̸=(),將table()中的所有行復制到table()中,然後清除表(),而不是真正的數據將符號鏈接放入()中。答案是列表行的最大表格大小。操作順序示例: 5

    0熱度

    1回答

    給定由1(雲)和0(晴空)組成的二維網格skyMap,計算雲的數量。 雲被晴空包圍,並且通過水平或垂直連接相鄰的雲而形成。您可以假設skyMap的所有四條邊都被晴空包圍。 例 skyMap = [['0', '1', '1', '0', '1'], ['0', '1', '1', '1', '1'], ['0', '0', '0', '0', '1'],

    0熱度

    1回答

    我們應該使用哪種方法查找所有斷開連接的圖形,以及爲什麼? 作爲BFS和DFS遍歷兩者都遍歷方法和由多個遍歷。我們可以找到所有斷開的組件。 而另一種方法可以是不相交集合用於kruskal(MST)中查找斷開的組件。