能否用通俗易懂的方法解釋下不相交集這種資料結構?

時間 2021-05-31 13:32:59

1樓:Belleve

不相交集資料結構和不相交集合森林(Disjoint Set Forest)是兩個層面的概念,後者是前者的一種高效實現。

乙個不相交集資料結構用來表示對元素的分類,分類之間彼此不相交。任意兩個元素是否同類可以描述為乙個等價關係。

而這個結構要求可以做到這種事情:

查詢某個元素被分到了哪個類

合併兩個類

如果使用常規的 Map/Hashtable 處理不相交集,對問題 1 很容易解決,但是對於問題 2,需要 O(n) 時間才能完成合併;不相交集合森林把兩個問題的解決時間都幾乎做到了 O(1),因此成為了最常用的不相交集資料結構。

2樓:

並查集是很基本的資料結構,找個中文部落格應該能讓你快速掌握。

對於演算法和資料結構的掌握程度,主要看你目標吧,如果目標是開發,那麼隨便看看就得了;如果想做得高階點,比如一些應用方面的創新(資料挖據、機器學習、圖形學、資料庫……),可能就得多學一點;如果再高階點,比如理論層面的工作(計算理論、量子計算、資訊理論……)可能要把主要精力放在數學上。

3樓:

A,B,C,D四個人組成2個集合(A,B),(C,D),用A來表示第乙個集合的老大,用C來表示第二個集合的老大,也就是(A,B的老大是A,C,D的老大是C),這樣你就很容易知道每個個人的老大是誰了,然後這兩個集合合體了,你把C的老大標記成A,這時候你想找D的老大是誰的時候,可以這樣子:D標記的老大是C,C的老大是A,然後就知道D的老大也是A了,這時候順便把D的標記改成A,這樣子下次找的話局不需要C了

4樓:

等價的定義就是滿足自反性、對稱性、傳遞性三條性質的二元關係,你所說的「一般認識的等價」似乎並沒有經過嚴格的定義,是個模糊的概念.

disjoint set 更常使用的譯名叫並查集,這種資料結構支援合併和查詢兩個操作.

合併兩個元素將會使這兩個元素等價,查詢可以得到某個元素所在的等價類的代表元.

舉個例子,現在有幾千個新生入學要安排宿舍,合併操作就是將兩個同學安排到同一間宿舍中,而查詢操作可以得到某個同學所在宿舍的捨長. 這裡同乙個宿舍裡的同學就是等價的,因為滿足自反性(自己和自己在同乙個宿舍裡)、對稱性(如果小紅和小黃在同乙個宿舍,那麼小黃和小紅在同乙個宿舍)、傳遞性(如果小紅和小黃同宿舍,小黃和小蘭同宿舍,那麼小紅和小蘭同宿舍)三條性質.

具體實現和演算法優化可以上網搜尋,參考相關資料.

請你用通俗易懂的方式解釋藝術?

厚顏 藝術就是讓你內心的一種觸動,讓你高興 傷心 難過 讓你回憶起往事。符合乙個時代的要求,符合人慾望,就像 世間不缺乏美,而是缺少發現美。 二Dogs 一種人類刺激自身感官的必然產物,一種傳達人類自身情緒的媒介。說到底,藝術是一種主觀性的 私人性的 部分群體互通的宣洩和溝通的途徑,並不存在高低之分...

用通俗易懂的語言解釋 隨機森林 ?

撫琴塵世客 隨機森林 Random Forest,簡稱 RF 是 Bagging的乙個擴充套件變體。在以決策樹為基學習器構建 Bagging 整合的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。 泰克尼客 在原始樣本的基礎上,利用bootstrap方法 有放回地抽取樣本 隨機抽取n個subs...

怎麼通俗易懂的解釋位元幣?

伊卡魯斯 你們滿腦袋都是名詞,誰能看懂?我來用人話試試,給普通人解釋解釋。你們看看對不對啊!位元幣說白了就是由中本聰發明的乙個想法,而我確信中本聰不是乙個人而是乙個團隊,這點不說了!中本聰一宅男沒工作,天天在家吃炸醬麵,這生活也不行啊,腦袋一熱突然有個想法,我可以整點我自己印的貨幣,那得先定個死規矩...