Ed
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).
Mais perguntas desse material