Algoritmos
É uma sequência finita e ordenada de passos (regras), com um esquema de processamento que permite a realização de uma tarefa (resolução de problemas, cálculos etc.).
Trata-se de uma palavra latinizada, derivada do nome de Al Khowarizmi, matemático árabe do século 9. Ele surgiu da necessidade de fazer cálculos sem o auxílio de ábacos, dedos e outros recursos. Até então, a estrutura dos cálculos esteve associada às ferramentas que havia à mão: pedras sobre o chão, varetas de bambu, a calculadora de manivela, a régua de cálculo e, por fim, a calculadora. É resultado de técnicas de cálculo que levaram séculos para se desenvolver. Também é usado na computação.
Classificação
Classificação por implementação
Pode-se classificar algoritmos pela maneira pelo qual foram implementados.
Recursivo ou iterativo - um algoritmo recursivo possui a característica de invocar a si mesmo repetidamente até que certa condição seja satisfeita e ele é terminado, que é um método comum em programação funcional. Algoritmos iterativos usam estruturas de repetição tais como laços, ou ainda estruturas de dados adicionais tais como pilhas, para resolver problemas. Cada algoritmo recursivo possui um algoritmo iterativo equivalente e vice-versa, mas que pode ter mais ou menos complexidade em sua construção.
Lógico - um algoritmo pode ser visto como uma dedução lógica controlada. O componente lógico expressa os axiomas usados na computação e o componente de controle determina a maneira como a dedução é aplicada aos axiomas. Tal conceito é base para a programação lógica.
Serial ou paralelo - algoritmos são geralmente assumidos por serem executados instrução a instrução individualmente, como uma lista de execução, o que constitui um algoritmo serial. Tal conceito é base para a programação imperativa. Por outro lado existem algoritmos executados paralelamente, que levam em conta as arquiteturas de computadores com mais de um processador para executar mais de uma instrução ao mesmo tempo. Tais