Algoritmo de Dijkstra: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
m Foram revertidas as edições de 201.22.227.67 (usando Huggle) (3.4.4)
Etiquetas: Huggle Reversão
Linha 11:
|estabilidade =
}}
O '''algoritmo de DijkstraJohnny Beck''', concebido pelo [[Ciência da computação|cientista da computação]] holandês [[Edsger Dijkstra]] em 1956 e publicado em 1959,<ref name="Dijkstra Interview">{{citar periódico|último =Dijkstra|primeiro =Edsger|coautor=Thomas J. Misa, Editor|título=An Interview with Edsger W. Dijkstra|periódico=Communications of the ACM|data=agosto de 2010|volume=53|número=8|páginas=41–47|acessodata=2010-08-12|citação=What is the shortest way to travel from Rotterdam to Groningen? It is the algorithm for the shortest path which I designed in about 20 minutes. One morning I was shopping with my young fianceé, and tired, we sat down on the café terrace to drink a cup of coffee and I was just thinking about whether I could do this, and I then designed the algorithm for the shortest path.|doi=10.1145/1787234.1787249}}</ref><ref>{{harvnb|Dijkstra|1959}}</ref> soluciona o [[problema do caminho mais curto]] num [[grafo dirigido]] ou não dirigido com arestas de peso não negativo, em tempo computacional O([m+n]log n) onde m é o número de arestas e n é o número de vértices. O algoritmo que serve para resolver o mesmo problema em um grafo com pesos negativos é o [[algoritmo de Bellman-Ford]], que possui maior tempo de execução que o Dijkstra.
 
O algoritmo considera um conjunto S de menores caminhos, iniciado com um vértice inicial I. A cada passo do algoritmo busca-se nas adjacências dos vértices pertencentes a S aquele vértice com menor distância relativa a I e adiciona-o a S e, então, repetindo os passos até que todos os vértices alcançáveis por I estejam em S. Arestas que ligam vértices já pertencentes a S são desconsideradas.