LogRitmo client-side / livephase / 02LR / 02 active
vocabulário
registro local

Vocabulário revisado.

sem envio externo

Os termos entram aqui quando você abre uma explicação. O registro fica somente neste navegador, em armazenamento local.

nenhum termo consultado

Abra um tooltip do modo iniciante para começar seu vocabulário.

fase 02 / grafos
03 / grafos

Dijkstra.

Escolha o custo conhecido mais baixo e relaxe o mapa.

ver A*
visualização passo a passo

Encontra o menor caminho em grafos com pesos positivos.

stage / Dijkstrafronteira / caminho
grafo / 08 nós / 11 arestas 0 1 0
42231423241AorigemBBCCDDEEFFGGHalvo
atual visitado caminho origem A → alvo H
telemetria / grafo
passo00grafo carregado — origem pronta
nós visitados00estado fechado
fronteira01próximos candidatos
custo alvoainda calculando
playback observado · grafo

Duração que aconteceu.

Execuções concluídas nesta bancada, medidas durante o playback ativo no navegador e salvas apenas neste dispositivo.

média / últimas 0Dijkstra · armazenamento local
sem registros ainda

Execute o algoritmo até o fim para transformar esta bancada em uma série de medições reais.

/ leitura da fronteira

Dijkstra
acumula evidências.

Dijkstra utiliza para encontrar o menor caminho ponderado. Use quando as arestas têm custos positivos e você quer uma distância ótima garantida.

some o custo conhecido
O caminho se revela quando cada reduz o custo conhecido.

melhorO(E log V)
médioO(E log V)
piorO(E log V)

Complexidade do modelo com fila de prioridade, uma estrutura que escolhe o menor custo pendente. A bancada usa uma fila linear para deixar essa escolha visível; por isso, ela não é um benchmark de desempenho.

/ por baixo do palco

Pseudocódigo e
implementação.

A mesma rede pode ser explorada com uma fila, uma pilha ou uma função de custo. Os trechos mostram o núcleo da decisão; funções de apoio, como recuperar a rota ou escolher o menor custo, aparecem com nomes descritivos para manter o foco da explicação.

01defina distância da origem como zero
02escolha o menor custo aberto
03relaxe cada vizinho
04marque o nó como resolvido
05repita até o alvo
/ implementação sincronizada
function dijkstra(graph, start, goal) {  const distance = { [start]: 0 };  const open = [start];  while (open.length) {    const node = takeLowest(open, distance);    if (node === goal) return distance;    for (const edge of graph[node]) {      const next = distance[node] + edge.weight;      if (next < (distance[edge.to] ?? Infinity)) {        distance[edge.to] = next; open.push(edge.to);      }    }  }  return distance;}