5.Dijkstra’s Algorithm(Single Source Shortest Path)
Heap Implementation
void findSortestPath(vector<pair<int, int>> v[], vector<int> &dist, vector<bool> &vs ,int src)
{
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
pq.push({0, src});
dist[src] = 0;
while (!pq.empty())
{
pair<int, int> p = pq.top();
pq.pop();
int node = p.second;
if(vs[node]){
continue;
}
vs[node] = true;
for (auto itr = v[node].begin(); itr != v[node].end(); itr++)
{
int x = (*itr).first;
int w = (*itr).second;
if (dist[node] + w < dist[x])
{
dist[x] = w + dist[node];
pq.push({dist[x], x});
}
}
}
return;
}Using Set
Last updated