keymasterviriya1150

Dijkstra’s Algorithm Code

Mar 29th, 2016
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.66 KB | None | 0 0
  1. priority_queue<ii, vector<ii>, greater<ii> > q; //data all is int ,container = vecter,greate<int> is min heap
  2. vector<int> dist;
  3.  
  4. dist.assign(n, INT_MAX); // Set all distance to maximum as possible
  5. dist[s] = 0;
  6.  
  7. q.push(make_pair(dist[s], s)); // starting vertex
  8.  
  9. while (!q.empty())
  10. {
  11.     int current_vertex = q.top().second;
  12.     q.pop();
  13.  
  14.     for (size_t i = 0; i < edge[current_vertex].size(); i++)
  15.     {
  16.         int next_vertex = edge[current_vertex][i].first;
  17.         int w = edge[current_vertex][i].second;
  18.         if (dist[next_vertex] > dist[current_vertex] + w)
  19.         {
  20.             dist[next_vertex] = dist[current_vertex] + w;
  21.             q.push(make_pair(dist[next_vertex], next_vertex));
  22.     }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment