Algoritmo
Um algoritmo, intuitivamente, é uma seqüência finita de instruções ou operações básicas (operações definidas sem ambigüidade e executáveis em tempo finito dispondo-se apenas de lápis e papel) cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância.
A ordenação de seqüência de instruções algoritmo apóia-se na estratégia estabelecida durante a análise do problema. O desenvolvimento do algoritmo não pode perder de vista os tipos de dados considerados e a sua representação.
Desenvolvimento de Algoritmos – Técnica Top-Down
O desenvolvimento de um algoritmo pode ser feito usando-se a técnica top-down, que consiste em identificar partes ou etapas na estratégia de resolução de resolução do problema, elaborando inicialmente um esboço da resolução. Em seguida, detalhamos sucessivamente cada etapa, refinando o processo de resolução, até chegar a uma seqüência de operações básicas sobre os tipos de dados considerados.
Descrição de um Algoritmo
A descrição de um algoritmo pode ser feita através de um pseudocódigo (linguagem algorítmica) ou através de fluxogramas. No fluxograma, cada operações básica (instrução) é representada por um desenho. Na linguagem algorítmica cada operação básica é escrita em uma linguagem semelhante á linguagem natural, com algumas regras comuns ás linguagens de programação.
Os fluxogramas são preferíveis em alguns casos por permitir uma visualização global do processo de resolução e de suas partes.
A linguagem algorítmica, por sua vez, apresenta ouras vantagens: é mais fácil escrever do que desenhar (na maioria dos casos) e a codificação em uma linguagem de programação acaba se tornando uma simples transcrição de palavras-chaves.
Projeto de Programa
A partir da estratégia de resolução do problema desenvolvemos um algoritmo e definimos as estruturas de dados que serão utilizadas objetivando otimizar o binômio tempo-espaço, isto é, visando obter um programa que apresente um tempo