最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)迪杰斯特拉算法并生成最短路徑的示例代碼

 更新時間:2020年12月01日 11:19:50   作者:會武術(shù)之白貓  
這篇文章主要介紹了Python實現(xiàn)迪杰斯特拉算法并生成最短路徑的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
def Dijkstra(network,s,d):#迪杰斯特拉算法算s-d的最短路徑,并返回該路徑和代價
  print("Start Dijstra Path……")
  path=[]#s-d的最短路徑
  n=len(network)#鄰接矩陣維度,即節(jié)點個數(shù)
  fmax=999
  w=[[0 for i in range(n)]for j in range(n)]#鄰接矩陣轉(zhuǎn)化成維度矩陣,即0→max
  book=[0 for i in range(n)]#是否已經(jīng)是最小的標記列表
  dis=[fmax for i in range(n)]#s到其他節(jié)點的最小距離
  book[s-1]=1#節(jié)點編號從1開始,列表序號從0開始
  midpath=[-1 for i in range(n)]#上一跳列表
  for i in range(n):
    for j in range(n):
      if network[i][j]!=0:
        w[i][j]=network[i][j]#0→max
      else:
        w[i][j]=fmax
      if i==s-1 and network[i][j]!=0:#直連的節(jié)點最小距離就是network[i][j]
        dis[j]=network[i][j]
  for i in range(n-1):#n-1次遍歷,除了s節(jié)點
    min=fmax
    for j in range(n):
      if book[j]==0 and dis[j]<min:#如果未遍歷且距離最小
        min=dis[j]
        u=j
    book[u]=1
    for v in range(n):#u直連的節(jié)點遍歷一遍
      if dis[v]>dis[u]+w[u][v]:
        dis[v]=dis[u]+w[u][v]
        midpath[v]=u+1#上一跳更新
  j=d-1#j是序號
  path.append(d)#因為存儲的是上一跳,所以先加入目的節(jié)點d,最后倒置
  while(midpath[j]!=-1):
    path.append(midpath[j])
    j=midpath[j]-1
  path.append(s)
  path.reverse()#倒置列表
  print(path)
  #print(midpath)
  print(dis)
  #return path

network=[[0,1,0,2,0,0],
     [1,0,2,4,3,0],
     [0,2,0,0,1,4],
     [2,4,0,0,6,0],
     [0,3,1,6,0,2],
     [0,0,4,0,2,0]]
Dijkstra(network,1,6)

以上就是Python實現(xiàn)迪杰斯特拉算法并生成最短路徑的示例代碼的詳細內(nèi)容,更多關(guān)于Python實現(xiàn)迪杰斯特拉算法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中的基本數(shù)據(jù)類型講解

    Python中的基本數(shù)據(jù)類型講解

    這篇文章介紹了Python中的基本數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • Python SQL查詢并生成json文件操作示例

    Python SQL查詢并生成json文件操作示例

    這篇文章主要介紹了Python SQL查詢并生成json文件操作,涉及Python基于mssqlhelper模塊進行mysql數(shù)據(jù)庫查詢與json格式文件生成相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • python UNIX_TIMESTAMP時間處理方法分析

    python UNIX_TIMESTAMP時間處理方法分析

    這篇文章主要介紹了python UNIX_TIMESTAMP時間處理方法,結(jié)合實例形式分析了Python針對UNIX_TIMESTAMP時間的常見運算技巧,需要的朋友可以參考下
    2016-04-04
  • Python實現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)

    Python實現(xiàn)讀取mat、tif和hdr格式數(shù)據(jù)

    遙感影像數(shù)據(jù)大多以tif格式或者以hdr格式進行存儲,如果以mat格式進行存儲,不會保留坐標信息,本文將詳細介紹如何使用python來讀取這三種格式的數(shù)據(jù),需要的可以參考下
    2023-12-12
  • 深入淺析Django MTV模式

    深入淺析Django MTV模式

    Django是基于MTV模式的框架,需要配合url控制器(路徑分發(fā))使用,本文重點給大家介紹Django MTV模式詳解,需要的朋友參考下吧
    2021-09-09
  • python語法教程之def()函數(shù)定義及用法

    python語法教程之def()函數(shù)定義及用法

    函數(shù)是組織好的,可重復(fù)使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段,下面這篇文章主要給大家介紹了關(guān)于python語法教程之def()函數(shù)定義及用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • selenium學(xué)習(xí)教程之定位以及切換frame(iframe)

    selenium學(xué)習(xí)教程之定位以及切換frame(iframe)

    這篇文章主要給大家介紹了關(guān)于selenium學(xué)習(xí)教程之定位以及切換frame(iframe)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python圖片驗證碼降噪和8鄰域降噪

    Python圖片驗證碼降噪和8鄰域降噪

    這篇文章主要介紹了Python圖片驗證碼降噪和8鄰域降噪的相關(guān)內(nèi)容,需要的小伙伴可以參考下面文章
    2021-08-08
  • 基于Python實現(xiàn)一個文件夾整理工具

    基于Python實現(xiàn)一個文件夾整理工具

    這篇文章主要為大家詳細介紹了如何基于Python實現(xiàn)一個簡單的文件夾整理工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Flask接收上傳圖片方法實現(xiàn)

    Flask接收上傳圖片方法實現(xiàn)

    本文主要介紹了Flask接收上傳圖片方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論

达拉特旗| 新建县| 清流县| 邢台县| 永春县| 郧西县| 铁岭县| 巴林左旗| 容城县| 嘉定区| 武穴市| 嵩明县| 白水县| 白玉县| 福泉市| 永州市| 常州市| 包头市| 遂平县| 海伦市| SHOW| 青神县| 固始县| 固安县| 且末县| 册亨县| 南平市| 南宫市| 湘阴县| 新昌县| 文山县| 漠河县| 泸定县| 德令哈市| 钟祥市| 尚义县| 昭平县| 西宁市| 宿州市| 沅江市| 固始县|