Ed
há 2 anos
Para determinar a complexidade de tempo do algoritmo de Dijkstra quando o grafo é representado como uma lista de adjacência, precisamos considerar como o algoritmo funciona. 1. Lista de Adjacência: Quando usamos uma lista de adjacência, a complexidade de tempo para percorrer todos os vértices e suas arestas é O(V + E), onde V é o número de vértices e E é o número de arestas. 2. Estrutura de Dados: Se utilizarmos uma fila de prioridade (como um heap) para selecionar o próximo vértice com a menor distância, a complexidade para cada operação de extração do mínimo é O(log V). Portanto, ao longo de V extrações, isso resulta em O(V log V). Agora, analisando as alternativas: a) O(V^2) - Esta complexidade é mais comum em implementações que não usam filas de prioridade. b) O(E log V) - Esta é a complexidade correta quando se usa uma fila de prioridade e a lista de adjacência, pois cada aresta é processada uma vez. c) O(V + E) - Esta é a complexidade de tempo para percorrer todos os vértices e arestas, mas não considera a extração do mínimo. d) O(V log V) - Esta complexidade se refere apenas ao tempo de extração do mínimo, mas não considera o processamento das arestas. Portanto, a alternativa correta, considerando a representação do grafo como uma lista de adjacência e o uso de uma fila de prioridade, é: b) O(E log V).
Cadastre-se ou realize login
Mais perguntas desse material