Dijkstra算法解決最短路徑問題
Dijkstra算法是大學計算機專業要學習的一種算法,剛剛接觸的時候會感覺非常的不好理解,今天就用一個例子來教給大家怎麼一步一步的去理解這個算法。
操作方法
(01)例子直接看圖吧,我們這是一個無向圖,首先我們需要找到一個起點,爲了方便我們直接按照字母的順序來,從a點開始
(02)然後我們找出其餘所有的與a點相連的點,並根據路徑上的權值計算出長度如圖中的一樣先寫上
(03)然後我們來確定第二個點,根據上一步的結果我們可以發現到b的權重是最小的,所以我們確定第二個點是b點,a--b 此時b的權重爲3
(04)然後我們找第三個點,現在已經是走到b點了,所以接下來的一步是從b點開始向外延伸,再找出所有與b相連的點,再根據路徑上的權值和b點的權值計算出所有與b點相連的點的權值。
(05)根據上一步的結果我們可以確定d點是權值最小的點,所以第三個點應該是d點。
(06)以此類推,下面的幾個點依然是用這種方式來確定,與d點相連的有c e兩個點,我們計算出來長度是c(d,10)e(e,9)
(07)此時c的權重爲10,而上一步c的權重爲7,所以應該選擇邊b--c 而不是d---c
(08)最後一個點e,根據上面的點和路徑上的值,來算出權值,根據結果要選擇路徑d--e
(09)根據上面的每一步的結果最後連起來就是這個圖的最短路徑。
特別提示
本人能力有限,表達不清楚的地方歡迎詢問指正
發現錯誤可以給我私信留言
-
鹽析法沉澱蛋白質的原理
(01)除了上述提到的鹽析法沉澱蛋白質的原理之外,還有其他一些方法可以用來沉澱蛋白質。以下是一些常見的方法:1.酸鹼法:透過調整溶液的酸鹼度,使蛋白質的溶解度發生變化,從而實現蛋白質的沉澱。酸鹼法通常用於沉澱那些在特定pH值下不穩定的蛋白質。(02)2.有機溶劑法:某些...
-
火影忍者九大尾獸實力排行 和網友想象的不一樣
導語:《火影忍者》是一部十分優秀動漫作品在全世界口碑不錯,可能和其中比較隨意的設定有關係。其中裏面的不同尾獸引起很多人注意,甚至於有人認爲尾數越多實力越強,真實情況是這樣嗎?探祕志小編帶大家一起了解一下其中九大尾獸實力排行吧。1、九尾排在火影忍者九大...
-
最好養的熱帶魚排行 十大養不死的熱帶魚盤點
導語:很多人都想在家裏養魚,但是養魚也並不是那麼簡單的,所以很多人開始就會選擇比較好樣的魚。熱帶魚不僅好看而且對環境要求比較小,那麼最好養的熱帶魚有哪些?探祕志帶大家瞭解十大養不死的熱帶魚吧。1、月光魚第一個進入最好養的熱帶魚排行是月光魚,這是一種比較...
-
怎麼融化巧克力
(01)融化巧克力的方法有多種,以下是一些常見的方法:1.調溫鍋熔化法:將巧克力切碎,然後放入調溫鍋裏熔化。調溫鍋能夠控制溫度,避免巧克力燒焦。將調溫鍋的溫度調至45-50℃,放入巧克力,不斷攪拌直至巧克力完全融化。(02)2.隔水加熱熔化法:將切碎的巧克力放入一個碗中,然後將...