Recursividade: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
Criação da seção referências |
Funcionalidade de sugestões de hiperligações: 3 hiperligações adicionadas. |
||
Linha 36:
A '''recursão''' é o processo pelo qual passa um certo procedimento quando um dos passos do procedimento em questão envolve a repetição completa deste mesmo procedimento<ref>{{Citar web|url=https://www.geeksforgeeks.org/introduction-to-recursion-2/|titulo=Introduction to Recursion|data=2017-01-11|acessodata=2024-07-17|website=GeeksforGeeks|lingua=en-US}}</ref>. Um procedimento que se utiliza da recursão é dito '''recursivo'''. Também é dito '''recursivo''' qualquer objeto que seja resultado de um procedimento recursivo.
Para entendermos a recursão, devemos primeiro compreender a diferença entre um procedimento e a execução de um procedimento. Um procedimento é um conjunto de passos que devem ser tomados baseados em um conjunto de regras. A execução de um procedimento envolve seguir de fato as regras e executar os passos. Uma [[analogia]] para isso é que um procedimento é como uma ementa (cardápio) que nos fornece as opções possíveis, enquanto a execução de um procedimento é escolhermos de fato qual refeição nos será servida.
Um procedimento é dito recursivo quando um de seus passos consiste na chamada de uma nova execução do procedimento. Consequentemente, uma refeição recursiva com quatro pratos seria uma refeição em que a entrada, a salada, o prato principal ou a sobremesa por si próprios já consistissem em refeições. Então uma refeição recursiva poderia ser feita por purês de batata, salada verde, [[frango]] grelhado, e para sobremesa, uma refeição de quatro pratos com bolinhos de bacalhau, salada de legumes, como prato principal uma refeição de quatro pratos, e para sobremesa um pedaço de bolo de chocolate, e assim sucessivamente até que a refeição esteja completa.
Um procedimento recursivo deve completar cada um de seus passos. Mesmo se uma nova chamada é feita, cada execução deve passar por cada um dos passos restantes. O que isso quer dizer é que, mesmo a salada sendo ela própria uma refeição inteira de quatro pratos, você ainda deverá comer o prato principal e a sobremesa.
Linha 90:
Um método comum de simplificação é dividir o problema em subproblemas do mesmo tipo. Como técnica de programação, este método é conhecido como dividir e conquistar e é a chave para a construção de muitos algoritmos importantes, bem como uma parte fundamental da [[programação dinâmica]].
A recursão na programação é bem exemplificada quando uma função é definida em termos de si mesma. Um exemplo da aplicação da recursão são os [[parsers]] (analisadores gramaticais) para [[Linguagem de programação|linguagens de programação]]. Uma grande vantagem da recursão é que um conjunto infinito de sentenças possíveis, designs ou outros dados podem ser definidos, analisados ou produzidos por um [[programa de computador]] finito.
Relações de recorrência são equações que definem uma ou mais sequências recursivamente. Alguns tipos específicos de relações de recorrência podem ser “resolvidos” para que se obtenha uma definição não-recursiva.
|