Escolar Documentos
Profissional Documentos
Cultura Documentos
3
u w
(u)
6 (u,w) caminhos
4
2 (u,w,x) mais curtos
(u,v)
v 7 x
Guloso
Passos:
Guloso
Passos:
Guloso
Passos:
Guloso
Passos:
Guloso
Passos:
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
7 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
7 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
7 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
7 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
7 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
7 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
1 1 4 8 7 9 enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v)
faça
3 início
Se d[w] > d[v] + peso(v,w)
3 5 então
d[w] := d[v] + peso(v,w);
2 fim
fim
• Complexidade
Procedimento inicialização(G,V,s)
início
S := ; O(1)
Q := V;
d[s] := 0;
para para todos v V e v ≠ s faça
início
d[v] := ∞;
fim
fim
Grafos e Algoritmos Computacionais DCOMP - UFS
41
Algoritmo de Dijkstra: Complexidade
• Complexidade
Procedimento inicialização(G,V,s)
início
S = ; O(1)
Q = V; O(|V|)
d[s] = 0;
para para todos v V e v ≠ s faça
início
d[v] = ∞;
fim
fim
Grafos e Algoritmos Computacionais DCOMP - UFS
42
Algoritmo de Dijkstra: Complexidade
• Complexidade
Procedimento inicialização(G,V,s)
início
S = ; O(1)
Q = V; O(|V|)
d[s] = 0; O(1)
para para todos v V e v ≠ s faça
início
d[v] = ∞;
fim
fim
Grafos e Algoritmos Computacionais DCOMP - UFS
43
Algoritmo de Dijkstra: Complexidade
• Complexidade
Procedimento inicialização(G,V,s)
início
S = ; O(1)
Q = V; O(|V|)
d[s] = 0; O(1)
para para todos v V e v ≠ s faça
início
O(|V|)
d[v] = ∞;
fim
fim
Grafos e Algoritmos Computacionais DCOMP - UFS
44
Algoritmo de Dijkstra: Complexidade
• Complexidade O(|V|)
Procedimento inicialização(G,V,s)
início
S := ; O(1)
Q := V; O(|V|)
d[s] := 0; O(1)
para para todos v V e v ≠ s faça
início
O(|V|)
d[v] := ∞;
fim
fim
Grafos e Algoritmos Computacionais DCOMP - UFS
45
Algoritmo de Dijkstra: Complexidade
• Complexidade O(|V|)
enquanto Q ≠ faça
início
v := extrairMinimo(Q);
S := S {v};
para todo w Adj(v) faça
início
Se d[w] > d[v] + peso(v,w) então
d[w] := d[v] + peso(v,w);
fim
fim
• Complexidade O(|V|)
enquanto Q ≠ faça
início
v := extrairMinimo(Q); O(|V||Extrair Mínimo|)
S := S {v};
para todo w Adj(v) faça
início
Se d[w] > d[v] + peso(v,w) então
d[w] := d[v] + peso(v,w);
fim
fim
• Complexidade O(|V|)
enquanto Q ≠ faça
início
v := extrairMinimo(Q); O(|V||Extrair Mínimo|)
S := S {v}; O(|V|)
para todo w Adj(v) faça
início
Se d[w] > d[v] + peso(v,w) então
d[w] := d[v] + peso(v,w);
fim
fim
• Complexidade O(|V|)
enquanto Q ≠ faça
início
v := extrairMinimo(Q); O(|V||Extrair Mínimo|)
S := S {v}; O(|V|)
para todo w Adj(v) faça
início
Se d[w] > d[v] + peso(v,w) então
O(|E||Mudança de Chave|)
d[w] := d[v] + peso(v,w);
fim
fim
enquanto Q ≠ faça
início
v := extrairMinimo(Q); O(|V||Extrair Mínimo|)
S := S {v}; O(|V|)
para todo w Adj(v) faça
início
Se d[w] > d[v] + peso(v,w) então
O(|E||Mudança de Chave|)
d[w] := d[v] + peso(v,w);
fim
fim
enquanto Q ≠ faça
início
v := extrairMinimo(Q); O(|V||Extrair Mínimo|)
S := S {v}; O(|V|)
para todo w Adj(v) faça
início
Se d[w] > d[v] + peso(v,w) então
O(|E||Mudança de Chave|)
d[w] := d[v] + peso(v,w);
fim
fim
• Busca em largura.
• Complexidade O(|V|+|E|)