Logo Passei Direto
Buscar
Em um grafo com 5 vertices e 8 arestas, o algoritmo de Dijkstra, utilizando uma fila de prioridade implementada por uma heap binaria, tem complexidade de tempo igual a:
a) O(V2)
b) O(V + E log V)
c) O(V log V + E)
d) O(E log V)
User badge image
Exercícios Para o Aprendizado

mês passado

Respostas

User badge image

Ed Verified user icon

mês passado

Para determinar a complexidade de tempo do algoritmo de Dijkstra utilizando uma fila de prioridade implementada por uma heap binária, precisamos considerar os componentes do grafo: - V é o número de vértices. - E é o número de arestas. No caso apresentado, temos: - V = 5 (número de vértices) - E = 8 (número de arestas) O algoritmo de Dijkstra, quando implementado com uma heap binária, tem uma complexidade de tempo que pode ser expressa como O(V log V + E log V). Isso se deve ao fato de que: - Para cada vértice, fazemos operações de extração e atualização na heap, que têm complexidade O(log V). - Para cada aresta, também fazemos operações na heap, resultando em O(E log V). Agora, analisando as alternativas: a) O(V²) - Não é a complexidade correta para a implementação com heap. b) O(V + E log V) - Não é a forma correta de expressar a complexidade do Dijkstra com heap. c) O(V log V + E) - Não considera o log V para as arestas. d) O(E log V) - Esta opção não considera o tempo para processar todos os vértices. A alternativa que melhor representa a complexidade do algoritmo de Dijkstra com uma heap binária é: c) O(V log V + E).

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

Mais conteúdos dessa disciplina