Logo Passei Direto
Buscar

Pedagogia

Outros
Um algoritmo recursivo que resolve o problema dividindo-o ao meio a cada passo, e combinando resultados em tempo linear, possui complexidade:
a) O(n)
b) O(log n)
c) O(n log n)
d) O(n2)
User badge image
Pedagogiando

há 2 meses

Respostas

User badge image

Ed Verified user icon

há 2 meses

Para resolver essa questão, precisamos entender como funciona a complexidade de um algoritmo recursivo que divide o problema ao meio e combina os resultados em tempo linear. 1. Divisão do problema: Quando um algoritmo divide o problema ao meio, isso sugere que a cada passo a entrada é reduzida pela metade. Isso é característico de algoritmos que têm uma complexidade logarítmica, como O(log n). 2. Combinação dos resultados: Se a combinação dos resultados é feita em tempo linear, isso significa que, após dividir o problema, o tempo para combinar os resultados é O(n). A complexidade total de um algoritmo que divide o problema em partes menores e combina os resultados em tempo linear é dada pela relação de recorrência T(n) = 2T(n/2) + O(n). Essa relação é resolvida usando o Teorema Mestre, que nos leva a concluir que a complexidade é O(n log n). Portanto, a alternativa correta é: c) O(n log n).

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