国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

圖論:一文教你讀懂常見的圖遍歷算法

這篇具有很好參考價值的文章主要介紹了圖論:一文教你讀懂常見的圖遍歷算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

圖論:一文教你讀懂常見的圖遍歷算法,算法

一文教你讀懂常見的圖遍歷算法

  1. 深度優(yōu)先搜索(DFS):
  • 從一個起始節(jié)點(diǎn)開始,訪問該節(jié)點(diǎn)并將其標(biāo)記為已訪問。
  • 遞歸地訪問所有與當(dāng)前節(jié)點(diǎn)直接相連且未被訪問過的節(jié)點(diǎn)。
  • 重復(fù)上述步驟,直到所有節(jié)點(diǎn)都被訪問過或沒有未訪問的節(jié)點(diǎn)。
  1. 廣度優(yōu)先搜索(BFS):
  • 從一個起始節(jié)點(diǎn)開始,將其放入隊(duì)列中,并標(biāo)記為已訪問。
  • 重復(fù)以下步驟直到隊(duì)列為空:
    • 從隊(duì)列中取出一個節(jié)點(diǎn)。
    • 訪問該節(jié)點(diǎn)。
    • 將與該節(jié)點(diǎn)直接相連且未被訪問的節(jié)點(diǎn)放入隊(duì)列中,并標(biāo)記為已訪問。
  1. Dijkstra算法:
  • 創(chuàng)建一個距離數(shù)組和一個標(biāo)記數(shù)組,用于存儲從起始節(jié)點(diǎn)到每個節(jié)點(diǎn)的最短距離和是否被訪問的標(biāo)記。
  • 初始化距離數(shù)組為無窮大,起始節(jié)點(diǎn)的距離為0。
  • 重復(fù)以下步驟直到所有節(jié)點(diǎn)都被訪問過:
    • 選擇距離數(shù)組中未被訪問的節(jié)點(diǎn)中距離最小的節(jié)點(diǎn)作為當(dāng)前節(jié)點(diǎn)。
    • 更新與當(dāng)前節(jié)點(diǎn)直接相連的節(jié)點(diǎn)的最短距離,如果新的距離比原來的距離小,則更新距離數(shù)組。
    • 標(biāo)記當(dāng)前節(jié)點(diǎn)為已訪問。
  1. Bellman-Ford算法:
  • 創(chuàng)建一個距離數(shù)組,用于存儲從起始節(jié)點(diǎn)到每個節(jié)點(diǎn)的最短距離。
  • 初始化距離數(shù)組為無窮大,起始節(jié)點(diǎn)的距離為0。
  • 重復(fù)以下步驟n-1次(n為節(jié)點(diǎn)數(shù)):
    • 遍歷所有邊,對每條邊進(jìn)行松弛操作:如果通過該邊可以獲得更短的路徑,則更新距離數(shù)組。
  • 檢查是否存在負(fù)權(quán)環(huán)。如果在第n次迭代中仍然可以松弛邊的距離,則存在負(fù)權(quán)環(huán)。
  1. Floyd-Warshall算法:
  • 創(chuàng)建一個二維距離矩陣,用于存儲任意兩個節(jié)點(diǎn)之間的最短距離。
  • 初始化距離矩陣,如果兩個節(jié)點(diǎn)之間存在邊,則距離為邊的權(quán)重,否則為無窮大。
  • 重復(fù)以下步驟,更新距離矩陣中的值:
    • 對于每對節(jié)點(diǎn)i和j,遍歷所有節(jié)點(diǎn)k,如果從i到j(luò)經(jīng)過k的距離更短,則更新距離矩陣中的值。
  1. 拓?fù)渑判颍?/li>
  • 拓?fù)渑判蛴糜谟邢驘o環(huán)圖(DAG)中的節(jié)點(diǎn)排序,使得對于任意兩個節(jié)點(diǎn)u和v,如果存在從u到v的路徑,則u在排序中出現(xiàn)在v之前。
  • 進(jìn)行拓?fù)渑判虻姆椒ㄊ鞘褂肈FS或BFS。
  • 對于DFS拓?fù)渑判颍?
    • 從一個未被訪問的節(jié)點(diǎn)開始,遞歸地訪問與該節(jié)點(diǎn)相連的未被訪問的節(jié)點(diǎn)。
    • 在訪問完一個節(jié)點(diǎn)的所有相鄰節(jié)點(diǎn)后,將該節(jié)點(diǎn)添加到排序結(jié)果的開頭。
  • 對于BFS拓?fù)渑判颍?
    • 統(tǒng)計每個節(jié)點(diǎn)的入度(即有多少條邊指向該節(jié)點(diǎn))。
    • 將入度為0的節(jié)點(diǎn)放入隊(duì)列中。
    • 重復(fù)以下步驟直到隊(duì)列為空:
      • 從隊(duì)列中取出一個節(jié)點(diǎn),將其添加到排序結(jié)果中。
      • 減少與該節(jié)點(diǎn)相鄰節(jié)點(diǎn)的入度。
      • 如果某個節(jié)點(diǎn)的入度變?yōu)?,則將其加入隊(duì)列中。
  1. 強(qiáng)連通分量算法:
  • 強(qiáng)連通分量是指有向圖中的一組節(jié)點(diǎn),其中任意兩個節(jié)點(diǎn)都可以相互到達(dá)。
  • Tarjan算法是一種常用的強(qiáng)連通分量算法。
  • Tarjan算法使用DFS遍歷圖,通過維護(hù)一個棧和一個索引值來判斷是否存在強(qiáng)連通分量。
  • 在進(jìn)行DFS遍歷時,為每個節(jié)點(diǎn)分配一個唯一的索引值,并記錄每個節(jié)點(diǎn)的索引值和最小可達(dá)索引值。
  • 當(dāng)遍歷到一個節(jié)點(diǎn)時,將其壓入棧中,并將其索引值和最小可達(dá)索引值設(shè)置為當(dāng)前索引值。
  • 如果遍歷到的節(jié)點(diǎn)還沒有被訪問過,繼續(xù)遞歸遍歷其相鄰節(jié)點(diǎn),并更新最小可達(dá)索引值。
  • 如果遍歷到的節(jié)點(diǎn)已經(jīng)被訪問過,且仍在棧中,則將其最小可達(dá)索引值與當(dāng)前節(jié)點(diǎn)的索引值進(jìn)行比較,如果相等,則將棧中的節(jié)點(diǎn)彈出,并形成一個強(qiáng)連通分量。

互聯(lián)網(wǎng)大廠測開經(jīng)歷,目前擔(dān)任測試開發(fā)負(fù)責(zé)人,每天分享互聯(lián)網(wǎng)面經(jīng),如果你有測試相關(guān)的問題,歡迎咨詢,海鮮市場【簡歷優(yōu)化】、【就業(yè)指導(dǎo)】、【模擬/輔導(dǎo)面試】,已輔導(dǎo)20位以上同學(xué)拿到心儀offer

簡歷修改119/次
模擬面試149/小時
測試開發(fā)工具指導(dǎo)149/小時

圖論:一文教你讀懂常見的圖遍歷算法,算法文章來源地址http://www.zghlxwxcb.cn/news/detail-857393.html

到了這里,關(guān)于圖論:一文教你讀懂常見的圖遍歷算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MATLAB :【11】一文帶你讀懂serialport串口收發(fā)原理與實(shí)現(xiàn)

    MATLAB :【11】一文帶你讀懂serialport串口收發(fā)原理與實(shí)現(xiàn)

    碎碎念: 這周的主要工作還是集中于FOC中,因?yàn)榱w慕稚暉君做出的漂亮Qt面板,因此在利用MATLAB復(fù)刻過程中,學(xué)習(xí)了一下serialport的使用。FOC的GUI部分就在加班加點(diǎn)寫作中啦,同時最近打算開一個新坑,大家可以期待一下哈哈哈。 歡迎大佬們點(diǎn)贊+收藏+關(guān)注~ o(* ̄▽ ̄*)ブ 目錄

    2023年04月18日
    瀏覽(43)
  • 抖音小店無貨源處罰全解,一文帶你讀懂官方規(guī)則,合理規(guī)避風(fēng)險

    抖音小店無貨源處罰全解,一文帶你讀懂官方規(guī)則,合理規(guī)避風(fēng)險

    大家好,我是電商年年 根據(jù)官方解釋, “無貨源店鋪” ,指店鋪經(jīng)營者沒有現(xiàn)貨,在網(wǎng)上找產(chǎn)品找貨源,在未取得貨源方授權(quán)的情況下,把貨源信息“搬運(yùn)”到自己的店鋪中,等有消費(fèi)者下單,店鋪經(jīng)營者再去 貨源方店鋪下 單,由貨源方向消費(fèi)者派單發(fā)貨。 ? 那官方對于

    2024年02月03日
    瀏覽(22)
  • 詳細(xì)介紹MATLAB中的圖論算法

    詳細(xì)介紹MATLAB中的圖論算法

    MATLAB是一種功能強(qiáng)大的編程語言和環(huán)境,提供了許多用于圖論算法的工具和函數(shù)。圖論是研究圖及其屬性和關(guān)系的數(shù)學(xué)分支,廣泛應(yīng)用于計算機(jī)科學(xué)、網(wǎng)絡(luò)分析、社交網(wǎng)絡(luò)分析等領(lǐng)域。在MATLAB中,我們可以使用圖論算法來解決各種問題,如最短路徑問題、最小生成樹問題、最

    2024年02月16日
    瀏覽(43)
  • 【圖論算法】最短路徑算法(無權(quán)最短路徑、Dijkstra算法、帶負(fù)邊值的圖、無圈圖)

    【圖論算法】最短路徑算法(無權(quán)最短路徑、Dijkstra算法、帶負(fù)邊值的圖、無圈圖)

    本篇博客將考察各種最短路徑問題。 ????無權(quán)最短路徑 ????Dijkstra 算法 ????具有負(fù)邊值的圖 ????無圈圖 ????所有頂點(diǎn)對間的最短路徑 ????最短路徑的例子–詞梯游戲 輸入是一個賦權(quán)圖:與每條邊 (v i , v j ) 相聯(lián)系的是穿越該邊的開銷(或稱為值

    2023年04月12日
    瀏覽(22)
  • 一文讀懂常見訂單類型及backtrader支持情況

    訂單反映的是投資者的決策,表明投資者想以什么價格買入/賣出對應(yīng)的投資標(biāo)的,訂單價格對最后的投資結(jié)果影響非常大,懂得都懂。 投資者常用的訂單類型包括市價單、限價單、止損/止盈單、移動止損/止盈單、附加訂單等,然而交易所卻只有市價單和限價單兩種基本訂單

    2024年02月15日
    瀏覽(20)
  • 【ACM競賽入門】001.一文讀懂常見的ACM題型輸入輸出格式

    本文通過各種類型的A+B題目來幫助大家快速了解ACM題目中常見的輸入輸出格式,幫助大家快速上手 時間限制: 1s 內(nèi)存限制: 64MB 題目描述 Your task is to Calculate a + b. Too easy?! Of course! I specially designed the problem for acm beginners. You must have found that some problems have the same titles with this one,

    2024年02月07日
    瀏覽(90)
  • 【無標(biāo)題】chatGPT--白話文教你讀懂chatGPT

    【無標(biāo)題】chatGPT--白話文教你讀懂chatGPT

    ChatGPT是Chat(聊天) Generative(生成) Pre-trained(預(yù)先訓(xùn)練過的) Transformer(改革者)的一個簡寫(或稱縮寫),也有人說Transformer是轉(zhuǎn)換者的意思,但是大致意思基本一樣,我們也不用太執(zhí)著到底是什么意思。本次ChatGPT是美國OpenAI (OpenAI,在美國成立的人工智能研究公司,核心宗旨在于“實(shí)

    2023年04月24日
    瀏覽(21)
  • 一口氣帶你讀懂跨境電商出海模式

    作為一名跨境電商賣家,掌握正確的“出海模式”至關(guān)重要。今天,就讓我們一起揭開跨境電商的神秘面紗,探索它的各種出海模式,為你的電商之旅提供指引。 1???國際站模式 ?起步門檻:10W及以內(nèi) ?利潤:高 ?客單價:較高(以?B2B?大單為主) ?運(yùn)營難度:中低,

    2024年02月21日
    瀏覽(27)
  • 工時管理為何對項(xiàng)目如此重要?8Manage 帶你讀懂!

    工時管理為何對項(xiàng)目如此重要?8Manage 帶你讀懂!

    “時間就是金錢”,相信作為管理者都已經(jīng)聽膩了這話,但在項(xiàng)目管理中確實(shí)是真理。你要知道項(xiàng)目工時是會直接影響到項(xiàng)目費(fèi)用成本的,不論項(xiàng)目工作是按小時還是按固定費(fèi)用計費(fèi)和付款,在一段工時內(nèi)完成的工作越多,說明效率就越高,而費(fèi)用成本也就越低。而且員工工

    2024年02月16日
    瀏覽(26)
  • Linux - 一篇帶你讀懂 Curl Proxy 代理模式

    Linux - 一篇帶你讀懂 Curl Proxy 代理模式

    curl 是一個很有名的處理網(wǎng)絡(luò)請求的 類Unix 工具。出于某種原因,我們進(jìn)行網(wǎng)絡(luò)請求,需要設(shè)置代理。本文講全面介紹如何為 curl 設(shè)置代理 設(shè)置代理參數(shù) 基本用法 設(shè)置 HTTP 代理 下面兩種設(shè)置代理的方式是可以的 由于代理地址的默認(rèn)協(xié)議為? HTTP, 所以可以省略,按照下面的

    2024年02月05日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包