algoritmo
A atividade de programar requer conhecimento lógico e principalmente técnico. Nesse sentido, o pleno domínio das principais técnicas de programação é fundamental para a elaboração de algoritmo e programas eficientes e de fácil manutenção. Em computação, algoritmos eficientes que conseguem resolver um determinado problema com melhor desempenho possível. Umas das técnicas para projeto de algoritmos mais usuais e importantes da programação de computadores é conhecida por “dividir para conquistar”. Mais que uma técnica, dividir para conquistar tem sido considerado um paradigma, uma vez que inspira o desenvolvimento de diversas outras técnicas de programação e, também, de análise de sistema. Os processos de divisão em subproblemas e combinação das soluções são fundamentais para o desenvolvimento de algoritmos eficientes. Essa técnica tem sido utilizada nas resoluções de vários problemas da computação, como problemas de ordenação (Quicksort e Nergessort), problemas de busca (pesquisa binária), problemas geométricos (algoritmo do par mais próximo e convex hull), entre outros. Pra mais informações sobre esses outros algoritmos com usos da técnica de divisão e conquista.
Em ciência da computação, mais especificamente no contexto da programação, uma sub-rotina (função, procedimento ou mesmo subprograma) consiste em uma porção de código que resolve um problema muito específico, parte de um problema maior (a aplicação final). O conceito de função difere da noção de procedimento, já que devolve um valor, se bem que, em algumas linguagens, esta distinção não é sequer existente; por exemplo, em C, a implementação de um procedimento é uma função do tipo void. No contexto da programação orientada a objetos, estas sub-rotinas são encapsuladas nos próprios objetos, passando a designar-se métodos.
Algumas das vantagens na utilização de sub-rotinas durante a programação são:
A redução de código duplicado num