圖---互斥集

互斥集主要用于Kruskal算法中,用于求圖的最小生成樹。

?

互斥集主要有3個基本操作:

?

1. 初始化各個集合

Make(a)p[a] ← a

?


?

2. 查找各個集合的老祖宗

Find(a)if a == p[a] : return aelse         : return Find(p[a])

?


?

3.? 合并兩個集合

Union(a, b)p[Find(b)] ← Find(a)

?

?

上面是第一個版本,相對比較簡單;但是,這個版本在某些情況下存在效率低下的問題,例如在查找老祖宗的時候形成直線的連接。

解決這個問題有兩種方法:

1. 在find的過程中,將中間查找到的節點全部掛到最終查找到的祖宗節點下去。

2. 在union的時候每次總是將層次小的集合掛到層次大的集合下去。

rank[x]: level of set:xMake(x)p[x] ← xrank[x] ← 0

?


?

Find(x)IF x ≠ p[x] p[x] ← Find_Set(p[x])RETURN p[x]

?


?

Union(x, y)Link( Find_Set(x), Find_Set(y) )

?


?

Link(x, y)IF rank[x] > rank[y]p[y] ← x        ELSE p[x] ← yIF rank[x] == rank[y]rank[y]++

?


?

?

轉載于:https://www.cnblogs.com/xfei-zhang/p/5086883.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257904.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257904.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257904.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle配置監聽要注意的地方

昨天心血來潮,把Oracle的監聽都刪了,準備重新配一遍,結果弄了一天才配好,不過對Oracle的了解更深了一些。 對昨天的問題做一個總結: 1、直接在NetManager中刪掉監聽時,實際的監聽服務好像并沒有完全刪除&am…

signature=486e34400687432217e65e837b8e6753,PXE常見錯誤代碼表

在我們日常做無盤時,通常都會遇到一些這樣或那樣的問題,不過好在一般這些錯誤都會有些錯誤代碼,我們可以通過錯誤代碼查詢到一些有幫助的信息。下面是我轉載的一些PXE驅動錯誤代碼表,遇到PXE錯誤時,可查詢下看看&#…

12月25號 Category類別

Category類別 1.在已有類的基礎上進行擴展,無需像繼承一樣子類化,就可以直接添加一些方法 2.繼承不僅可以添加方法還可以添加屬性,類別只能添加方法 3.類別不會改變現有類的方法,萬一重寫,自己寫的優先級高 4.把類別中…

17---Net基礎加強

更新中,敬請期待。。。。。。。。。。。。 復習 將xml顯示到treeview 修改增加 刪除 foreach原理 深拷貝與淺拷貝 模擬數據庫及登陸 復習總結轉載于:https://www.cnblogs.com/yechangzhong-826217795/p/4157562.html

Linux系統rootpassword改動

重新啟動系統。 進入系統引導界面: 按下e鍵: 選擇第二項。內核啟動參數設置,按下e鍵: 在結尾處,輸入數字 1或者 英文 " single",再回車: 按下b鍵啟動。此時以單用戶模式級別引導啟動程…

關于OC-省市區習題

對于省市區的問題,關鍵在于搞清楚數組嵌套字典,字典里面裝數組的多重嵌套關系,沉下心來,捋清楚思路, 實在看不懂就多打幾遍,這道題理解了,熟練了對之后學習很有好處。 代碼如下: NSS…

23種設計模式----------代理模式(一)

代理模式也叫委托模式。 代理模式定義:對其他對象提供一種代理從而控制對這個對象的訪問。就是,代理類 代理 被代理類,來執行被代理類里的方法。 一般情況下,代理模式化有三個角色。 1,抽象的主題類(或者接口) IGamePl…

(轉) Quartz學習——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成詳解(四)

http://blog.csdn.net/u010648555/article/details/60767633 當任何時候覺你得難受了,其實你的大腦是在進化,當任何時候你覺得輕松,其實都在使用以前的壞習慣。 通過前面的學習,你可能大致了解了Quartz,本篇博文為你打…

被流氓360設置瀏覽器主頁的解決辦法(如果你也遇到了跟我一樣的問題,不妨看一下是不是這個原因)...

最近電腦罷工,重裝了系統;很多常用軟件都不得不重新安裝,其實這都不是事兒,現在基本上都是百兆光纖了,下載安裝都很順溜。 瀏覽器也在安裝之列,因為搞開發所以谷歌火狐瀏覽器都是必裝的;平時基本…

BZOJ1834 [ZJOI2010]network 網絡擴容

網絡流訓練好題。。。但是要給差評!蒟蒻表示這就是板子題,然后做了半個小時T T 先跑一邊最大流,得到第一問答案ans。 第二問:原先的邊不動,費用為0。 然后對每條邊在上面再加一條邊,流量為inf,費…

android 更新平臺,Android更新平臺架構方案

這篇文章是去年寫的,我們的兩款app一直這使用umeng的更新服務,但是16年umeng開始放棄更新服務,考慮到切換到其他更新平臺也會面臨這樣的問題,我開始著手自己搭建一個更新平臺。整體方案包含前后端,客戶端代碼封裝成jar…

setSignVisible的修改

store傳入accountReducer 1.從cookie中獲取id,avatar,nickname.2.createStore(reducer, initState)傳入reducer,可以在頁面中state.accountReducer.current_account獲取 const middleware routerMiddleware(browserHistory); let initState {};if(Cookie.hasItem("id&qu…

DGbroker故障切換示例

1.主庫故障 SQL> startup ORACLE instance started.Total System Global Area 1068937216 bytes Fixed Size 2260088 bytes Variable Size 910164872 bytes Database Buffers 150994944 bytes Redo Buffers 5517312 bytes ORA-00205: e…

html 自動觸發 事件,js自動觸發事件自定義事件

在有些情況下,我們需要程序邏輯自動觸發元素的事件,例如js提供了click(), form提供了reset(),submit()等方法!在jquery中提供了trigger()方法幫助我們自動觸發事件,原理是什么呢?接下來讓我們一探究竟&…

Storm編程入門API系列之Storm的可靠性的ACK消息確認機制

概念,見博客 Storm概念學習系列之storm的可靠性 什么業務場景需要storm可靠性的ACK確認機制? 答:想要保住數據不丟,或者保住數據總是被處理。即若沒被處理的,得讓我們知道。 public void nextTuple() {num;System.out.…

關于 php mysql pdo cannot find driver 解決方案

1、下載 文件 或者 進入 在PHP源碼包中進入ext/pdo_mysql http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz 2、解壓文件tar zxvf PDO_MYSQL-1.0.2.tgz 3、配置和編譯文件cd PDO_MYSQL-1.0.2/usr/local/php/bin/phpize./configure –with-php-config/usr/local/php/bin/php-config…

iOS網絡編程開發-數據加密

iOS網絡編程開發-數據加密 一、簡單說明 1.說明 在開發應用的時候,數據的安全性至關重要,而僅僅用POST請求提交用戶的隱私數據,還是不能完全解決安全問題。 如:可以利用軟件(比如Charles)設置代理服務器&am…

Codeforces 821C - Okabe and Boxes

821C - Okabe and Boxes 思路&#xff1a;模擬。因為只需要比較棧頂和當前要刪除的值就可以了&#xff0c;所以如果棧頂和當前要刪除的值不同時&#xff0c;棧就可以清空了(因為下一次的棧頂不可能出現在前面那些值中)。 代碼&#xff1a; #include<bits/stdc.h> using n…

Java中forEach, 用來遍歷數組

這里的for是Java中forEach, 用來遍歷數組的。for(int i : d) 就是遍歷int型數組d的 每一次訪問數組d的時候讀取的數據放入int型的i中。和for(int i0;i<d.length();i)是一樣的&#xff0c;但是forEach的可用場合較多。public class e1 {public static void main(String[] …

HDU -2546飯卡(01背包+貪心)

這道題有個小小的坎&#xff0c;就是低于5塊不能選&#xff0c;大于5塊&#xff0c;可以任意選&#xff0c;所以就在初始條件判斷一下剩余錢數&#xff0c;然后如果大于5的話&#xff0c;這時候就要用到貪心的思想&#xff0c;只要大于等于5&#xff0c;先找最大的那個&#xf…