中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

.org做商業(yè)網(wǎng)站sem代運(yùn)營費(fèi)用

.org做商業(yè)網(wǎng)站,sem代運(yùn)營費(fèi)用,做慕斯蛋糕那個網(wǎng)站有視頻,湖南網(wǎng)站seo營銷多少費(fèi)用Tarjan 用于在有向圖中查找強(qiáng)連通分量的算法介紹 Tarjan算法是一種用于在有向圖中查找強(qiáng)連通分量的高效算法,由Robert Tarjan在1972年提出。強(qiáng)連通分量是指在有向圖中,如果從頂點(diǎn)u到頂點(diǎn)v以及從頂點(diǎn)v到頂點(diǎn)u都存在一條路徑,那么頂點(diǎn)u和頂點(diǎn)v…

Tarjan 用于在有向圖中查找強(qiáng)連通分量的算法介紹

Tarjan算法是一種用于在有向圖中查找強(qiáng)連通分量的高效算法,由Robert Tarjan在1972年提出。強(qiáng)連通分量是指在有向圖中,如果從頂點(diǎn)u到頂點(diǎn)v以及從頂點(diǎn)v到頂點(diǎn)u都存在一條路徑,那么頂點(diǎn)u和頂點(diǎn)v是強(qiáng)連通的。這些頂點(diǎn)組成的集合被稱為強(qiáng)連通分量(Strongly Connected Component,簡稱SCC)。

Tarjan算法的核心思想是通過深度優(yōu)先搜索(DFS)遍歷圖,并使用堆棧來追蹤搜索過程中的頂點(diǎn)。在遍歷的過程中,對每個頂點(diǎn)進(jìn)行標(biāo)記,記錄其在搜索樹中的深度和最小后向邊的深度。如果發(fā)現(xiàn)某個頂點(diǎn)的后繼節(jié)點(diǎn)指向了一個已經(jīng)被訪問過的頂點(diǎn),并且這個頂點(diǎn)在當(dāng)前的DFS搜索樹中(即它還在棧中),那么這個頂點(diǎn)及其所有后繼節(jié)點(diǎn)(在棧中且未被處理為其他強(qiáng)連通分量的部分)構(gòu)成一個強(qiáng)連通分量。

Tarjan算法中最重要的兩個數(shù)組是low[maxn]和dfn[maxn]:

low[u]代表u可以到達(dá)的深度最低的節(jié)點(diǎn)的深度值,即u能追溯到的最早被訪問到的節(jié)點(diǎn)的時間戳。
dfn[u]代表u在DFS樹中的深度,即u被訪問時的時間戳。

算法的基本步驟如下:

初始化所有頂點(diǎn)的dfn和low值為未定義(通??梢栽O(shè)為無窮大或特定標(biāo)記)。
對每個未訪問的頂點(diǎn)v,進(jìn)行DFS遍歷。
將v標(biāo)記為已訪問,并將其dfn[v]和low[v]設(shè)置為當(dāng)前時間戳。
將v壓入棧中。
遍歷v的所有鄰接點(diǎn)w。
如果w未訪問過,則遞歸地對w進(jìn)行DFS,并在返回后更新low[v]為min(low[v], low[w])。
如果w已訪問過且在棧中(即w是v的后繼節(jié)點(diǎn)且尚未被處理為其他強(qiáng)連通分量的部分),則更新low[v]為min(low[v], dfn[w])。
如果dfn[v] == low[v],則棧中從v到棧頂?shù)乃许旤c(diǎn)構(gòu)成一個強(qiáng)連通分量,將它們彈出棧并標(biāo)記為同一個強(qiáng)連通分量。

Tarjan算法的時間復(fù)雜度為O(V + E),其中V表示圖中的頂點(diǎn)數(shù),E表示圖中的邊數(shù)。由于只需要一次DFS遍歷即可找到所有的強(qiáng)連通分量,因此Tarjan算法是一種高效的強(qiáng)連通分量查找算法。

以上是對Tarjan算法用于在有向圖中查找強(qiáng)連通分量的簡要介紹。如需更詳細(xì)的信息或示例代碼,請參考相關(guān)算法書籍或在線資源。

Tarjan 用于在有向圖中查找強(qiáng)連通分量的算法python實(shí)現(xiàn)樣例

以下是Python中實(shí)現(xiàn)Tarjan算法查找強(qiáng)連通分量的示例代碼:

class Tarjan:def __init__(self, graph):self.graph = graphself.num_nodes = len(graph)self.index = 0self.lowlink = [0] * self.num_nodesself.on_stack = [False] * self.num_nodesself.stack = []self.scc = []def tarjan_scc(self):for i in range(self.num_nodes):if self.lowlink[i] == 0:self.strong_connect(i)return self.sccdef strong_connect(self, v):self.index += 1self.lowlink[v] = self.indexself.stack.append(v)self.on_stack[v] = Truefor w in self.graph[v]:if self.lowlink[w] == 0:self.strong_connect(w)self.lowlink[v] = min(self.lowlink[v], self.lowlink[w])elif self.on_stack[w]:self.lowlink[v] = min(self.lowlink[v], self.lowlink[w])if self.lowlink[v] == self.index:scc_component = []while True:w = self.stack.pop()self.on_stack[w] = Falsescc_component.append(w)if w == v:breakself.scc.append(scc_component)

使用示例:

# 創(chuàng)建有向圖的鄰接表表示
graph = [[1],[2],[0, 3],[4],[5],[3]
]# 創(chuàng)建Tarjan對象
tarjan = Tarjan(graph)# 調(diào)用tarjan_scc方法查找強(qiáng)連通分量
scc = tarjan.tarjan_scc()# 輸出強(qiáng)連通分量
for component in scc:print(component)

輸出結(jié)果:

[0, 1, 2]
[3]
[4, 5]

以上代碼實(shí)現(xiàn)了Tarjan算法用于在有向圖中查找強(qiáng)連通分量。算法首先初始化相關(guān)數(shù)據(jù)結(jié)構(gòu),包括索引、低鏈接、棧等。然后按照Tarjan算法的步驟進(jìn)行深度優(yōu)先搜索,并在搜索過程中記錄每個節(jié)點(diǎn)的索引和低鏈接值。當(dāng)找到一個強(qiáng)連通分量時,從棧中彈出節(jié)點(diǎn),直到找到當(dāng)前節(jié)點(diǎn)為止,并將這些節(jié)點(diǎn)組成一個強(qiáng)連通分量。最終,算法返回所有的強(qiáng)連通分量。

http://www.risenshineclean.com/news/27742.html

相關(guān)文章:

  • 網(wǎng)頁版微信怎么掃描二維碼seo網(wǎng)站推廣優(yōu)化論文
  • 做兼職的網(wǎng)站晉城seo
  • 濟(jì)寧市建設(shè)工程招投標(biāo)網(wǎng)站20個排版漂亮的網(wǎng)頁設(shè)計
  • 做網(wǎng)站流程營銷推廣軟文案例
  • 甘肅省衛(wèi)健委網(wǎng)站官網(wǎng)今天國際新聞
  • wordpress要不要放網(wǎng)站地圖seo是什么東西
  • 網(wǎng)站建設(shè)怎么做賬會計谷歌怎么推廣自己的網(wǎng)站
  • 四川住房和城鄉(xiāng)建設(shè)廳官網(wǎng)安全員seo主要是指優(yōu)化
  • 建設(shè)項(xiàng)目立項(xiàng)網(wǎng)站廣州百度seo排名
  • 住房和城鄉(xiāng)建設(shè)部網(wǎng)站村鎮(zhèn)建設(shè)新手電商運(yùn)營從哪開始學(xué)
  • 湛江外包做網(wǎng)站seo優(yōu)化是啥
  • 在線做banner的網(wǎng)站網(wǎng)站發(fā)布與推廣方式
  • 個人注冊公司查詢中山seo推廣優(yōu)化
  • 網(wǎng)站域名證書哪里獲取搜索引擎優(yōu)化的重要性
  • 網(wǎng)站開發(fā)架構(gòu)網(wǎng)站seo快速優(yōu)化
  • 網(wǎng)頁基礎(chǔ)優(yōu)化站點(diǎn)
  • 專做裝修的網(wǎng)站凡科建站怎么導(dǎo)出網(wǎng)頁
  • 找網(wǎng)站開發(fā)公司需要注意那幾點(diǎn)產(chǎn)品推廣文案
  • 帝國建設(shè)網(wǎng)站成功營銷十大經(jīng)典案例
  • 怎么做網(wǎng)站客服彈窗專業(yè)提升關(guān)鍵詞排名工具
  • 深圳58同城網(wǎng)站建設(shè)站長網(wǎng)站提交
  • 旅游網(wǎng)站的后臺管理系統(tǒng)怎么做推銷網(wǎng)站
  • 網(wǎng)站 色調(diào)手機(jī)網(wǎng)站自助建站系統(tǒng)
  • 重慶金融網(wǎng)站建設(shè)一級域名二級域名三級域名的區(qū)別
  • 網(wǎng)站建設(shè)是屬于軟件開發(fā)費(fèi)嗎百度推廣怎么收費(fèi)的
  • 市環(huán)保局網(wǎng)站建設(shè)方案南寧seo手段
  • 頭像 wordpress天津seo博客
  • 做網(wǎng)站 我們的工人怎么寫中國營銷傳播網(wǎng)
  • 微信做淘寶優(yōu)惠券但網(wǎng)站是怎么建設(shè)但seo整站排名
  • dedecms 倒計時 天數(shù) 網(wǎng)站首頁免費(fèi)b站推廣網(wǎng)站短視頻