精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Dijkstra 算法初探

開發 后端 算法
Dijkstra算法是典型的最短路徑算法,用于計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。Dijkstra算法能得出最短路徑的最優解,但由于它遍歷計算的節點很多,所以效率低。

Dijkstra 算法,又叫迪科斯徹算法(Dijkstra),算法解決的是有向圖中單個源點到其他頂點的最短路徑問題。

舉例來說,如果圖中的頂點表示城市,而邊上的權重表示著城市間開車行經的距離,Dijkstra 算法可以用來找到兩個城市之間的最短路徑。

一、Dijkstra 的算法實現

Dijkstra 算法的輸入包含了一個有權重的有向圖 G,以及G中的一個來源頂點 S。

我們以 V 表示 G 中所有頂點的集合,以 E 表示G 中所有邊的集合。(u, v) 表示從頂點 u 到 v 有路徑相連,而邊的權重則由權重函數 w: E → [0, ∞] 定義。

因此,w(u, v) 就是從頂點 u 到頂點 v 的非負花費值(cost),邊的花費可以想像成兩個頂點之間的距離。任兩點間路徑的花費值,就是該路徑上所有邊的花費值總和。

已知有 V 中有頂點 s 及 t,Dijkstra 算法可以找到 s 到 t 的最低花費路徑(例如,最短路徑)。這個算法也可以在一個圖中,找到從一個頂點 s 到任何其他頂點的最短路徑。

好,咱們來看下此算法的具體實現:

Dijkstra 算法的實現一(維基百科):

u := Extract_Min(Q) 在頂點集合 Q 中搜索有最小的 d[u] 值的頂點 u。這個頂點被從集合 Q 中刪除并返回給用戶。

  1. function Dijkstra(G, w, s)  
  2. for each vertex v in V[G]                        // 初始化  
  3.           d[v] := infinity  
  4.           previous[v] := undefined  
  5.     d[s] := 0  
  6.     S := empty set  
  7.    Q := set of all vertices  
  8.     while Q is not an empty set                      // Dijkstra演算法主體  
  9.           u := Extract_Min(Q)  
  10.           S := S union {u}  
  11.         for each edge (u,v) outgoing from u  
  12.              if d[v] > d[u] + w(u,v)             // 拓展邊(u,v)  
  13.                       d[v] := d[u] + w(u,v)  
  14.                        previous[v] := u  

如果我們只對在 s 和 t 之間尋找一條最短路徑的話,我們可以在第9行添加條件如果滿足 u = t 的話終止程序。現在我們可以通過迭代來回溯出 s 到 t 的最短路徑.

  1. s := empty sequence   
  2. u := t  
  3. while defined u                                          
  4.    insert u to the beginning of S  
  5.    u := previous[u] 

現在序列 S 就是從 s 到 t 的最短路徑的頂點集.

Dijkstra 算法的實現二(算法導論):

  1. DIJKSTRA(G, w, s)  
  2.  INITIALIZE-SINGLE-SOURCE(G, s)  
  3.  S ← Ø  
  4.  Q ← V[G]                                 //V*O(1)  
  5. while Q ≠ Ø  
  6.    do u ← EXTRACT-MIN(Q)     //EXTRACT-MIN,V*O(V),V*O(lgV)  
  7.     S ← S ∪{u}  
  8.   for each vertex v ∈ Adj[u]  
  9.   do RELAX(u, v, w)       //松弛技術,E*O(1),E*O(lgV)。 

因為Dijkstra算法總是在V-S中選擇“最輕”或“最近”的頂點插入到集合S中,所以我們說它使用了貪心策略。

此Dijkstra 算法的最初的時間復雜度為O(V*V+E),源點可達的話,O(V*lgV+E*lgV)=>O(E*lgV)
當是稀疏圖的情況時,E=V*V/lgV,算法的時間復雜度可為O(V^2)。

但我們知道,若是斐波那契堆實現優先隊列的話,算法時間復雜度,則為O(V*lgV + E)。

二、Dijkstra 算法的執行速度

我們可以用大O符號將Dijkstra 算法的運行時間表示為邊數 m 和頂點數 n 的函數。Dijkstra 算法最簡單的實現方法是用一個鏈表或者數組來存儲所有頂點的集合 Q,所以搜索 Q 中最小元素的運算(Extract-Min(Q))只需要線性搜索 Q 中的所有元素。
這樣的話算法的運行時間是 O(E^2)。

對于邊數少于 E^2 的稀疏圖來說,我們可以用鄰接表來更有效的實現迪科斯徹算法。同時需要將一個二叉堆或者斐波納契堆用作優先隊列來尋找最小的頂點(Extract-Min)。

當用到二叉堆時候,算法所需的時間為O(( V+E )logE),斐波納契堆能稍微提高一些性能,讓算法運行時間達到O(V+ElogE)。

開放最短路徑優先(OSPF, Open Shortest Path First)算法是迪科斯徹算法在網絡路由中的一個具體實現。與 Dijkstra 算法不同,Bellman-Ford算法可用于具有負數權值邊的圖,只要圖中不存在總花費為負值且從源點 s 可達的環路即可用此算法(如果有這樣的環路,則最短路徑不存在,因為沿環路循環多次即可無限制的降低總花費)。

與最短路徑問題相關最有名的一個問題是旅行商問題(Traveling salesman problem),此類問題要求找出恰好通過所有標點一次且最終回到原點的最短路徑。

然而該問題為NP-完全的;換言之,與最短路徑問題不同,旅行商問題不太可能具有多項式時間解法。如果有已知信息可用來估計某一點到目標點的距離,則可改用A*搜尋算法,以減小最短路徑的搜索范圍。

BFS、DFS、Kruskal、Prim、Dijkstra算法時間復雜度的比較:

一般說來,我們知道,BFS,DFS算法的時間復雜度為O(V+E),最小生成樹算法Kruskal、Prim算法的時間復雜度為O(E*lgV)。而Prim算法若采用斐波那契堆實現的話,算法時間復雜度為O(E+V*lgV),當|V|<<|E|時,E+V*lgV是一個較大的改進。//|V|<<|E|,=>O(E+V*lgV) << O(E*lgV),對吧。

Dijkstra 算法,斐波納契堆用作優先隊列時,算法時間復雜度為O(V*lgV + E)。//看到了吧,與Prim算法采用斐波那契堆實現時,的算法時間復雜度是一樣的。

所以我們,說,BFS、Prime、Dijkstra 算法是有相似之處的,單從各算法的時間復雜度比較看,就可窺之一二。

三、圖文解析 Dijkstra 算法

 經過上文有點繁雜的信息,你還并不對此算法了如指掌,清晰透徹。沒關系,咱們來幅圖,就好了。請允許我再對此算法的概念闡述下,

Dijkstra算法是典型最短路徑算法,用于計算一個節點到其他所有節點的最短路徑。
不過,針對的是非負值權邊。

主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。
[Dijkstra算法能得出最短路徑的最優解,但由于它遍歷計算的節點很多,所以效率低。

請看下圖:

如下圖,設A為源點,求A到其他各所有一一頂點(B、C、D、E、F)的最短路徑。線上所標注為相鄰線段之間的距離,即權值。

(注:此圖為隨意所畫,其相鄰頂點間的距離與圖中的目視長度不能一一對等)

Dijkstra無向圖

 

算法執行步驟如下表:

是不是對此Dijkstra 算法有不錯的了解了。那么,此文也完了。

原文鏈接:http://blog.csdn.net/v_JULY_v/archive/2010/12/24/6096981.aspx

【編輯推薦】

  1. 幾大最短路徑算法比較
  2. 在C/C++算法設計中使用任意位寬
  3. java算法之字符組合排序
  4. Java實現通用組合算法
  5. Android Market排名算法及規則分析
責任編輯:于鐵 來源: CSDN
相關推薦

2011-05-17 14:29:29

Dijkstra

2021-03-10 09:50:15

算法Dijkstra短路問題

2012-02-09 09:00:54

匯編語言

2023-10-25 09:00:00

算法Dijkstra算法

2021-01-28 10:55:31

算法可視化數據

2016-10-11 13:48:41

WebGLJavascriptWeb

2010-06-03 12:57:06

Hadoop

2009-06-24 13:22:27

Glassfish

2011-01-26 09:14:43

數據挖掘

2011-04-18 09:53:08

Ruby

2013-06-24 09:37:34

OSPF協議SPF算法路由技術

2014-11-20 15:44:40

Apple Watch

2015-01-21 16:35:49

Apple WatchWatchKit

2012-02-29 15:03:30

2025-08-11 09:18:00

2024-10-28 09:20:00

2012-04-05 13:50:38

Java

2011-08-24 09:30:29

JavaJVM

2012-07-09 10:22:28

Mono for An

2013-04-10 11:23:27

點贊
收藏

51CTO技術棧公眾號

精品国产亚洲一区二区三区在线| 免费av在线电影| 国产在线不卡| 亚洲视频在线观看| 91av免费观看| 欧美www.| 一区二区高清免费观看影视大全| 久久精品五月婷婷| 亚洲一区中文字幕在线| 黑人一区二区| 中国china体内裑精亚洲片| 深夜福利网站在线观看| 我爱我色成人网| 亚洲综合999| 亚洲欧美日韩精品在线| 老牛影视av牛牛影视av| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩第一视频| 日本一道本视频| 激情小说亚洲图片| 91麻豆精品国产综合久久久久久| 自慰无码一区二区三区| 在线看一级片| 中文字幕乱码久久午夜不卡| 国产精品日本一区二区| 亚洲手机在线观看| 久久天堂精品| 欧美亚洲午夜视频在线观看| 澳门黄色一级片| 久久激情电影| 亚洲片国产一区一级在线观看| 国产又黄又嫩又滑又白| 日韩毛片免费看| 欧洲国产伦久久久久久久| 无码 制服 丝袜 国产 另类| 大片免费在线看视频| 国产精品三级av在线播放| 极品日韩久久| 欧美视频在线观看一区二区三区| 激情综合色播激情啊| 国产精品91在线观看| 久久露脸国语精品国产91| 欧美激情aⅴ一区二区三区| www.xxxx精品| 国精品人伦一区二区三区蜜桃| 精品视频久久| 亚洲欧美综合精品久久成人| 亚洲精品乱码久久久久久不卡| 亚洲天堂av资源在线观看| 欧美一区二区三区视频免费| 女同激情久久av久久| 国产福利91精品一区二区| 欧美亚洲国产一区在线观看网站 | 国产精品成人一区二区三区电影毛片 | 综合久久一区| 欧美大成色www永久网站婷| 国产老头老太做爰视频| 91成人国产| 欧美成人精品激情在线观看| 黄视频网站免费看| 欧美一区影院| 91高清在线免费观看| 日韩伦人妻无码| 国产亚洲毛片| 国产不卡av在线免费观看| www.欧美色| 日本欧美韩国一区三区| 国产精品一区二区三区在线播放| 夜夜骚av一区二区三区| 精品写真视频在线观看| 亚洲精品日韩激情在线电影| www.黄色小说.com| 成人av在线资源| 欧美极品视频一区二区三区| 国产免费av高清在线| 国产精品国产三级国产aⅴ入口| 亚洲永久激情精品| 欧美高清另类hdvideosexjaⅴ| 五月天亚洲婷婷| 国产日韩成人内射视频| 欧美综合影院| 亚洲国产欧美自拍| 五月天综合视频| 国产精品99久久久久久动医院| 欧美成人午夜激情在线| 久草国产精品视频| 免费成人在线视频观看| 99影视tv| 国产在线视频网址| 一区二区三区国产| 亚洲熟妇av一区二区三区| 高清在线一区| 亚洲精品在线观看网站| 国产精品20p| 欧美三级视频| 国产精品免费观看在线| 亚洲高清精品视频| 欧美极品美女视频| 分分操这里只有精品| 91综合国产| 亚洲国产精品va| 91免费在线看片| 一区二区动漫| 亚洲一区久久久| 欧美日韩免费做爰大片| 亚洲激情欧美激情| 国产精品入口免费软件| 国产精品久久久久av蜜臀| 日韩在线精品一区| 五月天激情国产综合婷婷婷| 国产一区二区在线看| 免费看成人午夜电影| 性xxxfreexxxx性欧美| 日本韩国一区二区| 亚洲av成人精品一区二区三区| 色中色综合网| 国产成人97精品免费看片| 亚洲国产视频一区二区三区| 国产精品色婷婷| 欧美黄色一级片视频| 精品国产导航| 欧美激情第一页xxx| 91丨porny丨在线中文 | 国产精品妹子av| 91免费视频网站在线观看| 在线精品国产亚洲| 久久久极品av| 亚洲在线免费观看视频| 国产校园另类小说区| 人妻夜夜添夜夜无码av| 日韩一二三区| 久久亚洲精品网站| 91亚洲国产成人精品一区| 国产网红主播福利一区二区| 人妻久久久一区二区三区| 中文字幕一区二区三区中文字幕 | 亚洲欧美日韩综合| 草久久免费视频| 成人一级片网址| 成年在线观看视频| 婷婷综合国产| 欧美成人免费在线视频| 国产高清精品软件丝瓜软件| 亚洲人成7777| 在线免费黄色网| 91精品国产自产在线观看永久∴ | 国产一区二区三区四区视频 | 午夜午夜精品一区二区三区文| 亚洲黄色免费av| 国产视频久久久久久久| 日日噜噜噜噜人人爽亚洲精品| 99久精品国产| 六月丁香婷婷在线| 免费欧美激情| 国产成人啪精品视频免费网| 国产日本在线视频| 欧美亚洲国产一区二区三区va| 极品久久久久久久| 精品中文字幕一区二区小辣椒 | 玖玖爱在线观看| 性8sex亚洲区入口| 五月天色一区| 激情久久一区二区| 久久综合伊人77777| 不卡av中文字幕| 五月天中文字幕一区二区| 国产黄色三级网站| 日韩精品亚洲专区| 黄色www在线观看| 538任你躁精品视频网免费| 国语自产精品视频在免费| 刘亦菲毛片一区二区三区| 欧美日韩精品国产| 日本综合在线观看| 国产精品综合久久| 无码人妻丰满熟妇区96| 日韩电影一区| 成人91视频| 亚洲欧美电影| 日韩在线资源网| 免费观看a视频| 在线观看91精品国产入口| 91免费公开视频| 99久久99精品久久久久久| 亚洲一区二区三区四区五区xx| 国产精品久久久久久久久久10秀| 99蜜桃在线观看免费视频网站| 麻豆免费在线| 色老头一区二区三区| 黄色av网站免费在线观看| 在线亚洲精品福利网址导航| 99热精品免费| 国产亚洲精品bt天堂精选| 国产资源中文字幕| 首页综合国产亚洲丝袜| 国产精品视频网站在线观看| 久久91精品| 99久久无色码| 97人人做人人爽香蕉精品| 久久久久九九九九| 在线日本中文字幕| 亚洲国产精品系列| 国产精品久久久久久久成人午夜| 午夜一区二区三区视频| 国产精品18在线| 91网址在线看| a级大片免费看| 蜜臀av一区二区在线观看| 免费在线观看亚洲视频| 欧美.www| 午夜精品电影在线观看| 老汉色老汉首页av亚洲| 亚洲一区二区中文| 国产精品久久乐| 日本成人激情视频| 9999精品成人免费毛片在线看| 中文日韩在线视频| 国产在线电影| 日韩精品视频在线观看网址| 国产哺乳奶水91在线播放| 欧美三级在线播放| 无码人妻精品一区二区三区蜜桃91| 亚洲综合一二三区| 卡通动漫亚洲综合| 亚洲欧美综合色| 欧美激情亚洲色图| 久久久亚洲欧洲日产国码αv| 亚洲精品无码一区二区| 国产一区二区精品在线观看| 污污动漫在线观看| 日韩国产欧美在线播放| 精品一区二区中文字幕| 亚洲精品字幕| 99久久国产综合精品五月天喷水| 91精品啪在线观看国产81旧版| 亚洲国产一区二区三区在线播 | 日日噜噜噜噜人人爽亚洲精品| 亚洲高清一区二区三区| 久久久国产成人| 一区二区在线电影| 久久久久久天堂| 亚洲最快最全在线视频| 538精品在线观看| 一区二区三区在线视频免费观看| www欧美com| 亚洲激情五月婷婷| 久久99久久98精品免观看软件| 一区二区欧美精品| 久久久久噜噜噜亚洲熟女综合| 亚洲精品免费在线| 免费视频网站www| 亚洲国产欧美日韩另类综合| 久久精品波多野结衣| 亚洲国产一区二区三区| 国产污片在线观看| 日韩欧美精品中文字幕| 日本久久综合网| 欧美日韩情趣电影| 国产麻豆91视频| 精品国精品自拍自在线| 外国精品视频在线观看 | 亚洲а∨天堂久久精品2021| 国产欧美一区二区精品性| 精品国产aaa| 亚洲欧美在线视频| 亚洲熟女www一区二区三区| 一区二区三区日韩在线观看| 日本一级淫片免费放| 一本一本大道香蕉久在线精品| 波多野结衣在线电影| 欧美日韩国产在线观看| www.色播.com| 亚洲免费av网址| 色欧美激情视频在线| 九九九久久久久久| 亚洲精品永久免费视频| 国产精品一区二区久久久久| 在线日韩成人| 日本午夜精品一区二区三区| 亚洲视频电影在线| 日本少妇高潮喷水视频| 美腿丝袜在线亚洲一区| 精品人妻一区二区免费| 国产校园另类小说区| 黄色一级视频免费观看| 欧美性xxxx在线播放| 一级黄色a视频| 精品欧美一区二区在线观看| 女人天堂在线| 精品中文字幕在线| 日韩电影大全网站| 亚洲综合色av| 日韩激情网站| 丰满人妻一区二区三区53号| 久久成人亚洲| 超碰人人cao| 欧美激情在线一区二区三区| 黄色一级视频免费观看| 日本高清成人免费播放| 亚洲免费国产视频| 尤物99国产成人精品视频 | 国产精品久久久久久久电影| 88久久精品| 一区二区不卡在线视频 午夜欧美不卡'| 伊人成人在线| 欧美污在线观看| 日本一区二区视频在线| 日本中文字幕免费| 欧美一二区视频| 成年网站在线| 全亚洲最色的网站在线观看| 日韩在线观看中文字幕| 丝袜美腿玉足3d专区一区| 国产精品免费看| 91亚洲一线产区二线产区| 亚洲欧洲在线观看av| 日韩一级片中文字幕| 日韩大片免费观看视频播放| 91网在线看| 成人中文字幕+乱码+中文字幕| 国产一区二区三区电影在线观看| 欧美无砖专区免费| 国产精品66部| 精品无码一区二区三区蜜臀| 欧美午夜精品一区二区三区| 欧美黄色小说| 欧美在线亚洲一区| 欧美人体视频| 日韩av高清在线看片| 国产成人aaaa| 久久久全国免费视频| 日韩女优av电影在线观看| a篇片在线观看网站| 成人免费xxxxx在线观看| 日韩精品91| 三上悠亚在线一区二区| 中文一区一区三区高中清不卡| 无码日韩精品一区二区| 亚洲精品一区中文字幕乱码| 麻豆国产在线| 一级片中文字幕| 亚洲午夜影视影院在线观看| 国产日韩欧美中文字幕| 久久手机免费视频| 国产aⅴ精品一区二区四区| 一区二区三区一级片| 韩国av一区二区三区| 无码黑人精品一区二区| 9191久久久久久久久久久| 成人日批视频| 成人自拍爱视频| 亚洲区一区二| 亚洲精品成人无码熟妇在线| 欧美性xxxxx| 国产视频二区在线观看| 国产欧美 在线欧美| 你懂的国产精品| 熟妇高潮一区二区| 第一福利永久视频精品| 国产在线视频网址| 国产一区香蕉久久| 一本一道久久a久久精品蜜桃 | 亚洲乱码国产乱码精品精| 欧洲av不卡| 亚洲国产欧美一区二区三区不卡| 久久国产综合精品| 欧美日韩精品在线观看视频| 精品国产一区久久| 精品国产第一福利网站| 亚洲精品9999| 国产98色在线|日韩| 51国产偷自视频区视频| 在线亚洲午夜片av大片| 国产区一区二| 国产精品欧美激情在线观看| 中文字幕在线不卡国产视频| 亚洲欧美激情在线观看| 91成人国产在线观看| 欧美wwwww| 亚洲香蕉中文网| 欧美亚洲综合久久| 神马午夜伦理不卡 | 精品人妻一区二区免费| 色欧美日韩亚洲| www.欧美日本韩国| 久久精品二区| 狠狠网亚洲精品| 人人干人人干人人干| 精品久久国产精品| 日韩成人av在线资源| 国产3p在线播放| 精品国产精品三级精品av网址| 成人在线免费看| 国产精品久久久久久久久婷婷 | 亚洲理伦在线| 天天舔天天操天天干| 亚洲电影免费观看高清完整版在线| 欧美最新精品| 搞av.com| 亚洲精品视频在线|