Buscar

ma estratégia muito utilizada no desenvolvimento de algoritmos recursivos é aplicar a técnica de divisão e conquista. Nesse caso, o problema origin...

ma estratégia muito utilizada no desenvolvimento de algoritmos recursivos é aplicar a técnica de divisão e conquista. Nesse caso, o problema original é dividido em problemas menores, os quais são solucionados e, posteriormente, combinados para formar a solução do problema inicial. Um exemplo é o problema de multiplicação de matrizes quadradas (mesmo número de linhas e colunas), cujo algoritmo iterativo é apresentado a seguir: Algoritmo MultiplicaMatrizQuadrada Entrada: Duas matrizes A e B quadradas de tamanho n Saída: Matriz C = A × B 1. Defina uma matriz C quadrada de tamanho n 2. para i ← 1 até n faça 3. para j ← 1 até n faça 4. cij ← 0 5. para k ← 1 até n faça 6. cij ← cij + aik × bkj 7. retorna C Suponha, então, uma versão recursiva desse algoritmo, chamada MultiplicaRecursivo, pode ser obtida por meio da divisão das matrizes A, B e C em 4 matrizes de tamanho n/2 (assuma que n é potência exata de 2), conforme imagem a seguir: as_20211112113908.JPG Considerando essas informações e os conteúdos estudados, analise as seguintes afirmativas. I. O algoritmo MultiplicaRecursivo terá desempenho superior que a versão iterativa apresentada. II. O caso base do algoritmo será se n = 1, então retorna c11 = a11 × b11. III. Serão necessárias 8 chamadas recursivas ao algoritmo MultiplicaRecursivo, para a construção de todas as submatrizes Cij. IV. A etapa de divisão das matrizes A, B e C em submatrizes pode impactar no desempenho geral do algoritmo. Está correto apenas o que se afirma em:

💡 1 Resposta

User badge image

Ed Verified user icon

A alternativa correta é a letra D) I e II estão corretas. I. O algoritmo MultiplicaRecursivo não terá desempenho superior que a versão iterativa apresentada, pois a versão recursiva tem um maior número de chamadas de função e, portanto, pode ser mais lenta. II. O caso base do algoritmo será se n = 1, então retorna c11 = a11 × b11. Essa afirmação está correta, pois quando a matriz é reduzida a um único elemento, o algoritmo retorna o produto desse elemento. III. Serão necessárias 8 chamadas recursivas ao algoritmo MultiplicaRecursivo, para a construção de todas as submatrizes Cij. Essa afirmação está incorreta, pois serão necessárias 8 chamadas recursivas para a construção de todas as submatrizes A, B e C, e não apenas para as submatrizes Cij. IV. A etapa de divisão das matrizes A, B e C em submatrizes pode impactar no desempenho geral do algoritmo. Essa afirmação está correta, pois a divisão das matrizes pode aumentar o número de chamadas recursivas e, portanto, afetar o desempenho geral do algoritmo.

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais