Dijkstra算法求單源最短路徑 特點:以起點爲中心向外層層擴展,直到擴展到終點爲止。
算法僞代碼:
清除所有點的標號
設d[0]=0;其他d[i]=INF
循環n次{
在所有未標號結點中,選出d值最小的結點x
給結點x標記
對於從x出發的所有邊(x,y),更新d[y]=min(d[y],d[x]+w(x,y))
}
Dijkstra算法求單源最短路徑 特點:以起點爲中心向外層層擴展,直到擴展到終點爲止。
算法僞代碼:
清除所有點的標號
設d[0]=0;其他d[i]=INF
循環n次{
在所有未標號結點中,選出d值最小的結點x
給結點x標記
對於從x出發的所有邊(x,y),更新d[y]=min(d[y],d[x]+w(x,y))
}
2014/12/11 嚇我一跳,還以爲連最短路都不會敲了。 debug發現輸入弄錯了 : for(int i =0 ;i < m; i++) { scanf("%d%d%d"