Quick sort
Um método comum de simplificação consiste em dividir um problema em subproblemas do mesmo tipo. Com elemento fundamental do paradigma de programação dinâmica.
Praticamente todas as linguagens de programação usadas hoje em dia permitem a especificação direta de funções e procedimentos recursivos. Quando uma função é invocada, o computador (na maioria das linguagens sobre a maior parte das arquiteturas baseadas em pilhas) ou a implementação da linguagem registra as várias instâncias de uma função (em muitas arquiteturas, usa-se uma pilha de chamada, embora outros métodos possam ser usados). Reciprocamente, toda função recursiva pode ser transformada em uma função iterativa usando uma pilha.
Toda função que puder ser produzida por um computador pode ser escrita como função recursiva sem o uso de iteração; reciprocamente, qualquer função recursiva pode ser descrita através de iterações sucessivas.
2. Desenvolvimento
Processo de recursão:
• Algoritmo recursivo, aquele algoritmo que para resolver problema divide-o em subproblemas mais simples, cujas soluções requere a aplicação dele mesmo.
• A linguagem C permite que um programador escreva funções que chamem a si mesmas. Tais rotinas são denominada recursivas.
• Processo de resolução(de uma equação, de um problema) mediante uma sequência finita de operações em que o objeto de cada uma é o resultado da que a precede.
Funcionamento:
Para ser usado de forma correta uma função recursiva deve ter um caso base ou uma