Advertisement
Guest User

Untitled

a guest
May 27th, 2016
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. public int dijkstra (int src, int dest)
  2. {
  3. int V = graph.NNodes;
  4. int dist[] = new int[V];
  5. boolean visited[] = new boolean[V];
  6.  
  7. for(int i = 0 ; i < V ; i++){
  8. dist[i] = Integer.MAX_VALUE;
  9. visited[i] = false;
  10. }
  11.  
  12. dist[src] = 0;
  13.  
  14. for(int i = 0 ; i < V-1 ; i++){
  15.  
  16. int u = minDistance(dist,visited);
  17. visited[u]=true;
  18.  
  19. for(int v = 0 ; v < V ; v++){
  20. if (!visited[v] && graph.adjMatrix[u][v]!=0 &&
  21. dist[u] != Integer.MAX_VALUE &&
  22. dist[u]+graph.adjMatrix[u][v] < dist[v])
  23. dist[v] = dist[u] + graph.adjMatrix[u][v];
  24.  
  25. }
  26.  
  27. }
  28. return dist[dest];
  29. }
  30.  
  31. public int minDistance(int dist[], boolean visited[]){
  32. int min = Integer.MAX_VALUE, min_index=-1;
  33. int V = graph.NNodes;
  34. for (int v = 0; v < V; v++)
  35. if (visited[v] == false && dist[v] <= min)
  36. {
  37. min = dist[v];
  38. min_index = v;
  39. }
  40.  
  41. return min_index;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement