Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita.
O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita culinária, embora muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada. Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema.
Um algoritmo não representa, necessariamente, um programa de computador , e sim os passos necessários para realizar uma tarefa. Sua implementação pode ser feita por um computador, por outro tipo de autômato ou mesmo por um ser humano. Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado de instruções em mais ou menos tempo, espaço ou esforço do que outros. Tal diferença pode ser reflexo da complexidade computacional aplicada, que depende de estruturas de dados adequadas ao algoritmo. Por exemplo, um algoritmo para se vestir pode especificar que você vista primeiro as meias e os sapatos antes de vestir a calça enquanto outro algoritmo especifica que você deve primeiro vestir a calça e depois as meias e os sapatos. Fica claro que o primeiro algoritmo é mais difícil de executar que o segundo apesar de ambos levarem ao mesmo resultado.
O conceito de um algoritmo foi formalizado em 1936 pela Máquina de Turing de Alan Turing e pelo cálculo lambda de Alonzo Church, que formaram as primeiras fundações da Ciência da computação.
A palavra algoritmo se deriva da tradução ao latim da palavra Alkhowarizmi, nome do matemático e astrônomo árabe que escreveu um tratado sobre manipulação de números e equações do século IX.
Características DE UM ALGORITMO
- PRECISO: Indicar a ordem de realização em cada passo.
- DEFINIDO: Se se seguir duas vezes, obtém o mesmo resultado cada vez.
- FINITO: Tem fim, um numero determinado de passos.
TIPOS DE ALGORITMOS:
ALGORITMO QUALITATIVO: São os algoritmos descritos mediante palavras.
EXEMPLOS:
- A elaboração de uma receita culinária
- Busca de um numero telefônico
- A mudança um aro
- A mudança de um foco queimado
ALGORITMO QUANTITATIVO: São os algoritmos que se apóiam em cálculos numéricos.
EXEMPLOS:
- Passos a seguir para calcular os salários dos empregados de uma empresa.
- Instruções para calcular os impostos a pagar dos vizinhos de um município.
- Passos para calcular o médio final de uma disciplina.
- Obter o máximo comum divisor de dois números.
Os algoritmos se podem expressar pela seguintes ferramentas de desenho:
- Formula
- Diagramas de fluxos
- Pseudo-códigos
- N-S (Nassi-Schneiderman)
Diagrama Nassi-Schneiderman
Os diagramas Nassi-Schneiderman são uma técnica para a especificação de algoritmos que combina a descrição textual do pseudo-código com a representação gráfica do diagrama de fluxo.