Qual é a diferença entre os algoritmos de BFS e Dijkstra ao procurar o caminho mais curto?

Eu estava lendo sobre algoritmos Graph e me deparei com esses dois algoritmos.

Eu pesquisei bastante sobre isso, mas não recebi nenhuma resposta satisfatória!

Eu tenho uma dúvida de que qual é a diferença entre o algoritmo de Dijkstra e o BFS enquanto procurava o caminho mais curto?

ao usar o BFS para encontrar o caminho mais curto em um gráfico, o que fazemos é

Descobrimos todos os vértices conectados, os adicionamos na fila e também mantemos a distância da origem ao vértice. Agora, se encontrarmos um caminho da origem para esse vértice com ainda menos distância, então o atualizaremos!

É exatamente a mesma coisa que fazemos no algoritmo de Dijkstra! então qual é a diferença entre Dijkstra e BFS? E então, por que as complexidades de tempo desses algoritmos são tão diferentes?

Se alguém puder explicar com a ajuda de um pseudo-código, ficarei muito grato!

Eu sei que estou perdendo alguma coisa! Por favor ajude!

questionAnswers(2)

yourAnswerToTheQuestion