From ff436090619acc624bcb37c106caeb49aba86798 Mon Sep 17 00:00:00 2001 From: Paul Jungeblut Date: Wed, 28 Sep 2016 15:38:10 +0200 Subject: C++11 for Dijkstra's algorithm! --- graph/dijkstra.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'graph/dijkstra.cpp') diff --git a/graph/dijkstra.cpp b/graph/dijkstra.cpp index 649cf6e..1fb5f53 100644 --- a/graph/dijkstra.cpp +++ b/graph/dijkstra.cpp @@ -1,9 +1,7 @@ // Laufzeit: O((|E|+|V|)*log |V|) void dijkstra(int start) { priority_queue, greater > pq; - vector dist, parent; - dist.assign(NUM_VERTICES, INF); - parent.assign(NUM_VERTICES, -1); + vector dist(NUM_VERTICES, INF), parent(NUM_VERTICES, -1); dist[start] = 0; pq.push(ii(0, start)); @@ -14,9 +12,8 @@ void dijkstra(int start) { if (curDist > dist[curNode]) continue; - for (int i = 0; i < (int)adjlist[curNode].size(); i++) { - int nextNode = adjlist[curNode][i].first, nextDist = curDist + adjlist[curNode][i].second; - + for (auto n : adjlist[curNode]) { + int nextNode = n.first, nextDist = curDist + n.second; if (nextDist < dist[nextNode]) { dist[nextNode] = nextDist; parent[nextNode] = curNode; pq.push(ii(nextDist, nextNode)); -- cgit v1.2.3