MO417 - Questão para a prova oral
Número: 140
Enunciado:
É sabido que o algoritmo de Dijkstra, apresentado abaixo, pode ser implementado utilizando diferentes implementações da fila de prioridades Q presente no algoritmo. Para implementações utilizando heaps binários, heaps binomiais e, heaps de Fibonacci, respectivamente, podemos afirmar que os tempos totais de execução são:
DIJKSTRA(G, w, s) INITIALIZE-SINGLE-SOURCE(G, s) S ← vazio Q ← V[G] while Q ≠ vazio do u ← EXTRACT-MIN(Q) S ← S ∪ {u} for cada vertice v pertencente a Adj[u] do RELAX(u,v,w)
INITIALIZE-SINGLE-SOURCE(G, s) for cada vertice v pertencente a V|G| do do d[v] ← ∞ predecessor[v] ← NIL d[s] ← 0
RELAX(u, v, w) if d[v] > d[u] + w(u,v) then d[v] ← d[u] + w(u, v) predecessor[v] ← u
Autor(a): Jonathas Campi Costa