迪傑斯特拉演算法是乙個非常典型的求單源最短路徑的演算法
/**
* matrix 為鄰接矩陣
* node 為單源點
* dist為單源點到各點的最短路徑長度
* path 記錄最短路徑
*/public
class
dijkstra
//對node本身初始化
visited[node]
=true
; dist[node]=0
;//源點不存在前驅節點,設為-1
path[node]=-
1;//對每個點進行計算最短路徑,共 n-1 次
//記錄每次最小路徑的位置
int k =0;
for(
int i =
1; i < n; i++)}
//將當前選中的點加入已選集合
//此處會確定乙個點已達到最短路徑,可在此處根據題目條件進行具體操作
visited[k]
=true
;//更新路徑dist
for(
int j =
0;j < n;j++)}
}}@test
public
void
test()
,,,,
};int node =0;
int[
] dist =
newint
[matrix.length]
;int
path =
newint
[matrix.length]
;dijkstra
(matrix,node,dist,path)
; system.out.
println
("dist:"
+arrays.
tostring
(dist));
system.out.
println
("path:"
+arrays.
tostring
(path));
}//輸出結果:
對無效思考的思考
昨天思考了乙個無聊的問題,並且打算用它來練習markdown文件編寫。但是聊著聊著發現場子鋪的太大,無法收場不說,連自己都感覺很無聊。所以想到了無效思考這個話題。在思考了乙個沒有結論的無聊的話題之後,我感覺生活中的八卦新聞 十萬個為什麼這些也是無效思考。雖然我又想到乙個無聊的話題,去談談是否應該讓小...
對ACM的思考
在我要考慮的是對於乙個簡單問題來說,深入思考是不是必要的。首先,如果把每乙個問題看作自然界規則集合的乙個區域性演化,並且把規則的總數當成有限的,那麼每解決乙個問題,都有概率讓下乙個問題的解決變得輕鬆。另外,規則是分層的,從表觀到本質,許多表象不同的問題本質相同,這樣如果把乙個問題思考得越深,下乙個問...
對痛苦的思考
u quote 電影 21克 中的一句台詞則闡述了對待苦難的另一種積極態度 上帝不會給你解除痛苦,但他會給你擔當痛苦的力量。quote 雖然他過不去了,但在這之前他比別人輕鬆,在這之後他沒有了機會,這也是一種公平,畢竟 出來混的,遲早要還的 人們不可能拖著墓碑一直走下去,如果在這道鴻溝之前大家都倒下...