Python - Design de Algoritmo

Algoritmo é um procedimento passo a passo, que define um conjunto de instruções a serem executadas em uma determinada ordem para obter a saída desejada. Os algoritmos são geralmente criados independentemente das linguagens subjacentes, ou seja, um algoritmo pode ser implementado em mais de uma linguagem de programação.

Do ponto de vista da estrutura de dados, a seguir estão algumas categorias importantes de algoritmos -

  • Search - Algoritmo para pesquisar um item em uma estrutura de dados.

  • Sort - Algoritmo para classificar os itens em uma determinada ordem.

  • Insert - Algoritmo para inserir item em uma estrutura de dados.

  • Update - Algoritmo para atualizar um item existente em uma estrutura de dados.

  • Delete - Algoritmo para excluir um item existente de uma estrutura de dados.

Características de um Algoritmo

Nem todos os procedimentos podem ser chamados de algoritmo. Um algoritmo deve ter as seguintes características -

  • Unambiguous- O algoritmo deve ser claro e inequívoco. Cada uma de suas etapas (ou fases) e suas entradas / saídas devem ser claras e levar a apenas um significado.

  • Input - Um algoritmo deve ter 0 ou mais entradas bem definidas.

  • Output - Um algoritmo deve ter 1 ou mais saídas bem definidas e deve corresponder à saída desejada.

  • Finiteness - Os algoritmos devem terminar após um número finito de etapas.

  • Feasibility - Deve ser viável com os recursos disponíveis.

  • Independent - Um algoritmo deve ter instruções passo a passo, que devem ser independentes de qualquer código de programação.

Como escrever um algoritmo?

Não existem padrões bem definidos para escrever algoritmos. Em vez disso, é dependente de problemas e recursos. Algoritmos nunca são escritos para suportar um código de programação específico.

Como sabemos, todas as linguagens de programação compartilham construções de código básicas como loops (do, for, while), controle de fluxo (if-else), etc. Essas construções comuns podem ser usadas para escrever um algoritmo.

Escrevemos algoritmos passo a passo, mas nem sempre é o caso. A escrita do algoritmo é um processo e é executada depois que o domínio do problema está bem definido. Ou seja, devemos conhecer o domínio do problema, para o qual estamos projetando uma solução.

Exemplo

Vamos tentar aprender a escrever algoritmos usando um exemplo.

Problem - Projete um algoritmo para adicionar dois números e exibir o resultado.

step 1 − START
step 2 − declare three integers a, b & c
step 3 − define values of a & b
step 4 − add values of a & b
step 5 − store output of step 4 to c
step 6 − print c
step 7 − STOP

Os algoritmos informam aos programadores como codificar o programa. Alternativamente, o algoritmo pode ser escrito como -

step 1 − START ADD
step 2 − get values of a & b
step 3 − c ← a + b
step 4 − display c
step 5 − STOP

No projeto e análise de algoritmos, geralmente o segundo método é usado para descrever um algoritmo. Isso torna mais fácil para o analista analisar o algoritmo, ignorando todas as definições indesejadas. Ele pode observar quais operações estão sendo usadas e como o processo está fluindo.

Escrita step numbers, é opcional.

Projetamos um algoritmo para obter a solução de um determinado problema. Um problema pode ser resolvido de mais de uma maneira.

Portanto, muitos algoritmos de solução podem ser derivados para um determinado problema. O próximo passo é analisar esses algoritmos de solução propostos e implementar a solução mais adequada.