摘要: 原创:http://www.cnblogs.com/hibernate6/archive/2011/02/12/2522331.html几个最短路径算法的比较:Floyd求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。 Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。Floyd-Warshall算法的时间复杂度为O(N^3),空间复杂度为O(N^2)。 Floyd-Warshall的原理是动态规划: 设Di,j,k为从i到j的只以(1..k)集合中的节点 阅读全文
posted @ 2013-02-25 20:17 _sunshine 阅读(1698) 评论(0) 推荐(2) 编辑
摘要: Bellman-ford算法的递推公式应该改为(求源点v0到各顶点v的最短路径):初始:dist(0)[v]=inf,dist(0)[v0]=0,v0是源点,v≠v0递推:对每条边(u,v),dist(k)[v]=min{dist(k-1)[v],dist(k-1)[v]+w(u,v)};k=1,2,3...View Code 1 void bellman(int v0){ 2 int i,k; 3 for(i=0;i<n;i++){ 4 dist[i]=inf; 5 path[i]=-1; 6 } 7 dist[v0]=0; ... 阅读全文
posted @ 2013-02-25 17:13 _sunshine 阅读(366) 评论(2) 推荐(1) 编辑