Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public int dijkstra (int src, int dest)
- {
- int V = graph.NNodes;
- int dist[] = new int[V];
- boolean visited[] = new boolean[V];
- for(int i = 0 ; i < V ; i++){
- dist[i] = Integer.MAX_VALUE;
- visited[i] = false;
- }
- dist[src] = 0;
- for(int i = 0 ; i < V-1 ; i++){
- int u = minDistance(dist,visited);
- visited[u]=true;
- for(int v = 0 ; v < V ; v++){
- if (!visited[v] && graph.adjMatrix[u][v]!=0 &&
- dist[u] != Integer.MAX_VALUE &&
- dist[u]+graph.adjMatrix[u][v] < dist[v])
- dist[v] = dist[u] + graph.adjMatrix[u][v];
- }
- }
- return dist[dest];
- }
- public int minDistance(int dist[], boolean visited[]){
- int min = Integer.MAX_VALUE, min_index=-1;
- int V = graph.NNodes;
- for (int v = 0; v < V; v++)
- if (visited[v] == false && dist[v] <= min)
- {
- min = dist[v];
- min_index = v;
- }
- return min_index;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement