《计算机网络自顶向下》之重头戏迪杰斯特拉算法
生活随笔
收集整理的這篇文章主要介紹了
《计算机网络自顶向下》之重头戏迪杰斯特拉算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
迪杰斯特拉算法(Dijkstra)是由荷蘭計算機科學家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是從一個頂點到其余各頂點的最短路徑算法,解決的是有權圖中最短路徑問題。迪杰斯特拉算法主要特點是從起始點開始,采用貪心算法的策略,每次遍歷到始點距離最近且未訪問過的頂點的鄰接節點,直到擴展到終點為止。
關于Dijkstra算法是如何工作的,下面我們通過一道例題來說明:
首先以T到所有網絡節點的最短路徑為例
為了方便計算,避免后期因為人為的疏忽漏算或者算錯,我們先把所有的其他點都列出來,像這樣:
其中N是指它開始的地方
首先t與自己肯定為0,后選擇一個與T連接最短的u;下一步TU,與x未直接相連,距離為infinity,同理得出w也為無窮;
與y直接相連,距離為7.....以此類推,它的規范寫法如下:
以此類推,如果你面前有好幾條路要走,你一定要選擇最短的那一條,這也是貪心算法的由來;
再舉個例子:
以tuvw為例:到x的最短距離為3+4;到v的距離最短為4,到y的距離最短為7,規范表達如下:
注意了!數字后面的字母表示的是與目標直接相連再N范圍之內的節點!這里容易混淆。
總結一下
本文并沒有著重與分析dijkstra算法的原理,而是采用一道經典的例題來剖析,適合于數學基礎較低的同學,其中所涉及的圖論等數學知識,感興趣的讀者可以自行去了解。
如有問題,歡迎私信或發郵件聯系我:flightgyc@qq.com
總結
以上是生活随笔為你收集整理的《计算机网络自顶向下》之重头戏迪杰斯特拉算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 凤阳县属于哪个省哪个市(安徽凤阳县有什么
- 下一篇: 百视悦推出 R7Ⅲ 7 英寸监视器:4K