Um algoritmo recursivo é aquele que chama a si mesmo ou outros algoritmos, com um deles eventualmente chamando o primeiro novamente. Exemplos de recursividade incluem o cálculo fatorial e ordenação rápida, onde parte do problema é resolvida recursivamente chamando o algoritmo original com um problema menor. Recursividade de cauda pode ser substituída por loops, tornando o algoritmo mais eficiente, embora recursividade torne o código mais elegante. Deve-se garantir que a recursão sempre termine.