A palavra "algoritmo" assusta muita gente, mas o conceito é simples: é uma sequência finita de passos bem definidos para resolver um problema. Uma receita de cozinha é um algoritmo. As indicações para chegar a uma morada também. Em informática, o que muda é que quem executa os passos é um computador.
Definição simples
Um algoritmo tem características importantes:
- Entrada: os dados com que começa (ingredientes, números, texto).
- Passos claros: cada instrução tem um único significado.
- Ordem definida: sabe-se o que vem primeiro e o que vem depois.
- Fim: termina num número finito de passos.
- Saída: produz um resultado.
Exemplos do dia a dia
Trocar uma lâmpada
- Desliga a luz.
- Retira a lâmpada fundida.
- Coloca a nova.
- Liga a luz.
- Se não acender, verifica se a lâmpada está bem enroscada.
Repara que o último passo é uma decisão: "se não acender". Os algoritmos também decidem.
Levantar dinheiro num multibanco
- Inserir o cartão.
- Digitar o PIN.
- Escolher o valor.
- Se o saldo for suficiente, entregar o dinheiro; senão, mostrar mensagem de erro.
- Devolver o cartão.
Representar um algoritmo
Há três formas comuns.
Linguagem natural
Escrever os passos em português, como acima.
Pseudocódigo
Uma mistura de português com estrutura de programação, sem regras rígidas:
início
ler número
se número % 2 = 0
escrever "par"
senão
escrever "ímpar"
fimFluxograma
Um desenho com caixas e setas: retângulos para ações, losangos para decisões e setas a mostrar o caminho. É muito usado no ensino para visualizar a lógica.
Do algoritmo ao programa
Um programa é um algoritmo escrito numa linguagem de programação. O algoritmo do "par ou ímpar" fica, em Python:
n = int(input("Número: "))
print("par" if n % 2 == 0 else "ímpar")O mesmo algoritmo pode ser escrito em Python, JavaScript, C ou qualquer outra linguagem. A ideia é a mesma.
Um exemplo clássico: procurar um número numa lista
Pesquisa linear: vê elemento a elemento até encontrar. Funciona sempre, mas pode ser lenta numa lista enorme.
Pesquisa binária: só funciona numa lista ordenada. Vês o elemento do meio: se for o que procuras, terminas; se for maior, descartas a metade de cima; se for menor, descartas a de baixo. Repete na metade que sobra.
def pesquisa_binaria(lista, alvo):
inicio, fim = 0, len(lista) - 1
while inicio <= fim:
meio = (inicio + fim) // 2
if lista[meio] == alvo:
return meio
if lista[meio] < alvo:
inicio = meio + 1
else:
fim = meio - 1
return -1
print(pesquisa_binaria([2, 5, 8, 12, 16, 23, 38], 16)) # 4Numa lista com um milhão de números, a pesquisa binária precisa de cerca de 20 passos; a linear pode precisar de um milhão. A escolha do algoritmo faz uma enorme diferença.
Algoritmos eficientes: o que significa
Medimos a eficiência pelo tempo e pela memória que o algoritmo gasta à medida que os dados crescem. Os programadores usam a notação Big O (por exemplo, O(n) para a pesquisa linear e O(log n) para a binária). No início, basta perceber a ideia: dois algoritmos que dão o mesmo resultado podem ter custos muito diferentes.
Algoritmos que usas todos os dias
- O motor de busca que ordena resultados.
- O GPS que calcula o caminho mais curto.
- As redes sociais que decidem o que te mostrar.
- O banco que verifica se uma transação é suspeita.
Como praticar
Treina com exercícios de lógica de programação e aprende como se guardam os dados em estruturas de dados básicas. Se estás a estudar informática e precisas de ajuda, temos aulas básicas de informática.
Perguntas frequentes
Algoritmo e programa são a mesma coisa?
Não. O algoritmo é a ideia, os passos para resolver o problema. O programa é a sua implementação numa linguagem concreta.
Preciso de matemática avançada para entender algoritmos?
Para os conceitos básicos, não. Matemática mais avançada ajuda em algoritmos mais complexos.
Qual o melhor algoritmo?
Depende do problema, do tamanho dos dados e dos recursos. Não existe um único melhor para tudo.




