日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Dijkstra算法的粗略学习

發(fā)布時間:2025/3/20 95 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dijkstra算法的粗略学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

#?-*-?coding:?utf-8?-*- ######################################################################### #?Author:?Yao?Kun #?Created?Time:?5/6/2014?PM?3:51:35 #?File?Name:?dijkstra.py #?Description:? ######################################################################### print?"dijkstra" INFINITE?=?10000 #?打印鄰接矩陣 def?print_adj(adj):#?用于按行輸出的臨時string變量print?"adj?matrix?-->?"for?row?in?adj:str_row?=?""for?ele?in?row:str_row?+=?str(ele)?+?"\t"print?str_row,?"\n" #?找到指定下標集合的最小值 def?find_min(lst,?allow_lst):tmp_min?=?INFINITEindex?=?-1for?i?in?range(0,?len(lst)):if?lst[i]?<?tmp_min?and?allow_lst[i]?!=?0:tmp_min?=?lst[i]index?=?ireturn?index #?ori代表初始源點 def?dijkstra(S,?D,?adj,?dist,?ori,?point_num):print?"Core?Alg"#?這樣表示的更容易理解path?=?[]#?初始化D集合和dist集合,dist集合記錄到某點的最小距離for?i?in?range(0,?point_num):if?i?==?ori:dist.append(0)else:dist.append(INFINITE)path.append([ori])D.append(-1)#?print?"dist?:",?dist#?print?"D?:",?D#?一直循環(huán)直到S集合滿while?len(S)?<?point_num:#?u代表當前正準備處理的頂點,取得最小值,然后并把這個點從D集合中取出u?=?find_min(dist,?D)D[u]?=?0#?添加u點到S集中S.append(u)for?v?in?range(0,?point_num):if?adj[u][v]?!=?INFINITE?and?D[v]?!=?0:#?Relax?步驟if(dist[v]?>?dist[u]?+?adj[u][v]):dist[v]?=?dist[u]?+?adj[u][v]#?記錄路徑,刪除原來的路徑,將到u的路徑和點v假如到新的路徑中path[v]?=?[]for?i?in?range(0,?len(path[u])):path[v].append(path[u][i])path[v].append(v)return?path #?單源點集合 S?=?[] D?=?[] #?保存到各個頂點距離的最小長度 dist?=?[] #?鄰接矩陣 adj?=?[[INFINITE,????10,???????????INFINITE,???????30,?????????????100],[INFINITE,????INFINITE,?????50,?????????????INFINITE,???????INFINITE],[INFINITE,????INFINITE,?????INFINITE,???????INFINITE,???????10],[INFINITE,????INFINITE,?????20,?????????????INFINITE,???????60],[INFINITE,????INFINITE,?????INFINITE,???????INFINITE,???????INFINITE] ] print_adj(adj) path?=?dijkstra(S,?D,?adj,?dist,?1,?5) print?path


轉(zhuǎn)載于:https://my.oschina.net/hope1ove/blog/274410

總結

以上是生活随笔為你收集整理的Dijkstra算法的粗略学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。