Logo Passei Direto
Buscar

Lógica de Programação

Colégio Objetivo
A ordenação é uma operação bastante comum no trato com dados. Por exemplo, ao recuperar os dados em um banco de dados é possível usar a cláusula 'ORDER BY' para recuperar dados ordenados e em planilhas eletrônicas é possível solicitar a ordenação de suas linhas.
Com base na execução do algoritmo, calcule quantas chamadas recursivas à função MergeSort ocorrem na subárvore de recursão proveniente da chamada MergeSort(Vetor, 10, 15), desconsiderando esta chamada com índices 10 e 15 na contagem.
a. 13 chamadas
b. 8 chamadas
c. 10 chamadas
d. 14 chamadas
e. 15 chamadas
User badge image
Estudando com Questões

há 4 dias

Respostas

User badge image

Ed Verified user icon

há 4 dias

Para calcular o número de chamadas recursivas na função MergeSort, precisamos entender como o algoritmo funciona. O MergeSort divide o vetor em duas metades até que cada subvetor tenha um único elemento, e então combina essas metades de forma ordenada. Quando chamamos `MergeSort(Vetor, 10, 15)`, estamos lidando com um subvetor que vai do índice 10 ao índice 15. Isso significa que estamos considerando 6 elementos (de 10 a 15, inclusive). O número de chamadas recursivas em MergeSort pode ser calculado da seguinte forma: 1. O vetor é dividido em duas metades até que cada subvetor tenha um único elemento. 2. Para um vetor de tamanho n, o número total de chamadas recursivas é aproximadamente 2n - 1, mas como estamos desconsiderando a chamada inicial, precisamos contar apenas as chamadas feitas nas subdivisões. Para um vetor de 6 elementos, o número de chamadas recursivas (desconsiderando a chamada inicial) é: - Primeira divisão: 6 elementos → 3 chamadas (para 3 elementos em cada metade) - Segunda divisão: 3 elementos → 2 chamadas (para 1 e 2 elementos) - Terceira divisão: 2 elementos → 1 chamada (para 1 e 1 elemento) Contando as chamadas: - 1ª divisão: 1 chamada - 2ª divisão: 2 chamadas - 3ª divisão: 3 chamadas - 4ª divisão: 4 chamadas Somando tudo, temos 1 + 2 + 3 + 4 = 10 chamadas recursivas. Portanto, a resposta correta é: c) 10 chamadas.

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