Algoritmo: o que é, representação e exemplo resolvido
Entenda o que é algoritmo, como definir entradas e saídas e como verificar uma solução com um exemplo de busca do maior valor.

Em poucas palavras
- O contrato define quais entradas e resultados o algoritmo precisa tratar.
- Um teste que funciona não substitui uma justificativa geral de correção.
- A análise de custo depende do tamanho da entrada e do modelo utilizado.
Neste artigo
Um algoritmo é um procedimento organizado de passos para resolver uma classe de problemas. Na computação, ele descreve como transformar entradas válidas em resultados esperados. A ideia precisa ser suficientemente precisa para permitir execução e análise. Um programa implementa algoritmos em uma linguagem; o algoritmo pode ser discutido antes de escolher essa linguagem.
A definição do NIST destaca o conjunto de passos computáveis para alcançar um resultado. Na graduação, vale acrescentar perguntas operacionais: quais entradas são aceitas, o que conta como resposta correta, por que o procedimento termina e quanto trabalho ele exige conforme a entrada cresce?
Comece por entradas e saídas
Antes de escrever passos, descreva o problema. “Encontrar o maior número” ainda deixa dúvidas: a lista pode estar vazia? Os valores podem ser negativos? É necessário devolver o valor ou sua posição? Essas decisões formam o contrato da solução. Um algoritmo só pode ser avaliado corretamente quando suas condições de uso estão claras.
Exemplo: encontrar o maior valor
Algoritmo em linguagem estruturada
- Guarde o primeiro elemento como maior encontrado.
- Percorra os elementos restantes, um de cada vez.
- Se o elemento atual for maior que o valor guardado, substitua o valor guardado.
- Depois de percorrer a lista, devolva o valor guardado.
| Momento | Valor examinado | Maior guardado |
|---|---|---|
| Inicialização | −7 | −7 |
| Primeira comparação | −2 | −2 |
| Segunda comparação | −9 | −2 |
| Terceira comparação | −2 | −2 |
| Resultado | Percurso concluído | −2 |
- Momento
- Inicialização
- Valor examinado
- −7
- Maior guardado
- −7
- Momento
- Primeira comparação
- Valor examinado
- −2
- Maior guardado
- −2
- Momento
- Segunda comparação
- Valor examinado
- −9
- Maior guardado
- −2
- Momento
- Terceira comparação
- Valor examinado
- −2
- Maior guardado
- −2
- Momento
- Resultado
- Valor examinado
- Percurso concluído
- Maior guardado
- −2
Inicializar o maior com zero produziria uma resposta errada para essa entrada, pois zero não pertence à lista e todos os valores são negativos. Começar pelo primeiro elemento resolve o problema dentro do contrato não vazio. A escolha da inicialização faz parte da correção, não é apenas um detalhe de implementação.
Como explicar por que funciona
Depois de cada passo, o valor guardado é o maior entre os elementos já examinados. Essa propriedade vale no início, quando apenas o primeiro foi considerado. Em cada comparação, ela é preservada: o valor atual substitui o guardado somente se for maior. Ao final, todos os elementos foram examinados, logo o guardado é o maior da lista inteira.
Esse raciocínio usa uma propriedade que se mantém durante o percurso, frequentemente chamada de invariante. O curso de algoritmos do MIT situa correção e eficiência como partes do estudo. Testar exemplos encontra falhas, mas uma explicação geral precisa considerar todas as entradas admitidas.
Como analisar o trabalho realizado
Para uma lista com n elementos, o procedimento realiza n − 1 comparações. Seu crescimento é linear, expresso por O(n) no modelo usual. A memória adicional usada para o valor guardado é constante. Essa análise descreve o procedimento e o modelo de custo; não fornece, sozinha, uma duração em segundos para qualquer máquina.
A forma de armazenar os dados também importa. Uma estrutura de dados define operações disponíveis e seus custos. O mesmo objetivo pode ter soluções diferentes quando os dados já estão ordenados, quando chegam em fluxo ou quando não cabem na memória. Declare as condições antes de comparar eficiência.
Pseudocódigo, fluxograma e programa
Linguagem estruturada e pseudocódigo tornam o raciocínio legível sem exigir todos os detalhes de uma linguagem. Um fluxograma destaca decisões e caminhos. Um programa precisa obedecer à sintaxe e ao comportamento da linguagem escolhida. A documentação de controle de fluxo do Python exemplifica decisões e repetições em uma implementação real.
Como revisar um algoritmo
Casos de conferência
- Uma lista com apenas um elemento.
- Uma lista formada somente por valores negativos.
- Maior valor no início e, em outro teste, no fim.
- Valores repetidos, inclusive repetição do maior.
- Entrada fora do contrato, para verificar como o programa a rejeita ou trata.
O estudo de pensamento computacional ajuda a decompor o problema. Para praticar a passagem do raciocínio ao código, siga algoritmos e lógica de programação. Definir, justificar e testar os passos permite ir além de copiar uma sequência que funciona apenas em um exemplo.
Referências
- NIST. Dictionary of Algorithms and Data Structures. Algorithm. https://xlinux.nist.gov/dads/HTML/algorithm.html
- MIT OPENCOURSEWARE. Introduction to Algorithms, 6.006. Spring 2020. https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/
- PYTHON SOFTWARE FOUNDATION. Tutorial: mais ferramentas de controle de fluxo. https://docs.python.org/pt-br/3/tutorial/controlflow.html
Autoria
Study Mais
Continue estudando

Banco de dados não relacional: modelos e escolhas
Compare modelos de banco de dados não relacional, entenda documentos, chave-valor, grafos e colunas largas e avalie escolhas pela carga de uso.

O que é lógica de programação? Condições e exemplos
Entenda lógica de programação com condições, operadores booleanos e tabelas de teste. Veja como detectar erros em regras de validação.

Modelo lógico de banco de dados: exemplo relacional
Entenda o modelo lógico de banco de dados e transforme regras de matrícula em relações, chaves e restrições antes da implementação física.
