Uma condição de saída é utilizada tanto na iteração como na ...

Próximas questões
Com base no mesmo assunto
Q91113 Programação
A respeito dos princípios de programação, julgue os seguintes itens.

Uma condição de saída é utilizada tanto na iteração como na recursão. Na primeira, para encerrar um laço de repetição e, na segunda, em uma estrutura de condição que encerra o processo de chamadas. Uma estrutura de condição executa mais rápido que um laço de repetição; portanto, um algoritmo que usa recursão é executado em menor tempo que o mesmo algoritmo que usa iteração.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - Errado

A questão aborda dois conceitos importantes em programação: iteração e recursão. Ambos são métodos para executar repetições em algoritmos. A iteração utiliza laços de repetição como for, while ou do-while, onde uma condição de saída é especificada para terminar o ciclo. Já a recursão é uma técnica onde uma função chama a si mesma, e deve ter uma condição de parada para evitar chamadas infinitas e consequente estouro de pilha (stack overflow).

É verdade que tanto na iteração quanto na recursão, uma condição de saída é essencial. No entanto, a afirmação de que "uma estrutura de condição executa mais rápido que um laço de repetição; portanto, um algoritmo que usa recursão é executado em menor tempo que o mesmo algoritmo que usa iteração" não é necessariamente verdadeira. A velocidade de execução de um algoritmo recursivo em comparação com um iterativo depende de diversos fatores, como a complexidade do problema, a implementação do algoritmo e o tipo de dados envolvidos. Além disso, a recursão tende a utilizar mais memória devido às chamadas de função que mantêm estados no stack, o que pode ser um fator limitante em sua velocidade em comparação à iteração, que geralmente é mais eficiente em termos de uso de memória.

Portanto, a questão está incorreta ao generalizar que a recursão é mais rápida que a iteração. A escolha entre usar recursão ou iteração depende do problema específico, da linguagem de programação e do contexto de aplicação. Além disso, algumas linguagens têm otimizações como a tail call optimization, que pode fazer a recursão ser tão eficiente quanto a iteração em termos de uso de memória.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O erro está na frase "um algoritmo que usa recursão é executado em menor tempo que o mesmo algoritmo que usa iteração", porque a recursividade não é um bloco elementar como a iteração, podendo até conter bloco do tipo sequencial, seleção ou iteração.
O desempenho é pior na recursão devido à alocação de memória na pilha de execução. 

errado-

recursividade cria uma copia do estado da função cada vez que ela chama ela mesma. Isso é feito para chamada que esta um nivel acima saber o estado em que parou. Loops permanecem no mesmo estado & nao necessitam se copiar. 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo