DP23 Bellman?Ford Algorithm @geeksforgeeks(二)

2014-11-24 07:25:04 · 作者: · 浏览: 1
ond iteration, so third and fourth iterations don’t update the distances.




package DP;

public class BellmanFordAlgorithm {

	public static void main(String[] args) {
		int V = 5;	// Number of vertices in graph
		int E = 8;	// Number of edges in graph
		Graph graph = createGraph(V, E);
		
		graph.edge[0].src = 0;
		graph.edge[0].dest = 1;
		graph.edge[0].weight = -1;
		
		graph.edge[1].src = 0;
		graph.edge[1].dest = 2;
		graph.edge[1].weight = 4;
		
		graph.edge[2].src = 1;
		graph.edge[2].dest = 2;
		graph.edge[2].weight = 3;
		
		graph.edge[3].src = 1;
		graph.edge[3].dest = 3;
		graph.edge[3].weight = 2;
		
		graph.edge[4].src = 1;
		graph.edge[4].dest = 4;
		graph.edge[4].weight = 2;
		
		graph.edge[5].src = 3;
		graph.edge[5].dest = 2;
		graph.edge[5].weight = 5;
		
		graph.edge[6].src = 3;
		graph.edge[6].dest = 1;
		graph.edge[6].weight = 1;
		
		graph.edge[7].src = 4;
		graph.edge[7].dest = 3;
		graph.edge[7].weight = -3;
		
		bellmanFord(graph, 0);
	}
	
	// Creates a graph with V vertices and E edges
	public static Graph createGraph(int V, int E){
		Graph graph = new Graph(V, E);
		graph.edge = new Edge[graph.E];
		for(int i=0; i
  
    Number of vertices, E-> Number of edges
		Edge[] edge;	// graph is represented as an array of edges.
		public Graph(){
		}
		public Graph(int V_, int E_){
			V = V_;
			E = E_;
		}
	}
}

  

http://www.geeksforgeeks.org/dynamic-programming-set-23-bellman-ford-algorithm/

https://blog.itu.dk/SGDS-E2012/files/2012/11/44demobellmanford.pdf