Módulo 12 - Quanto custa: eficiência e a noção de Big-O
Contar passos, não segundos
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Entender por que medir por cronômetro engana.
- Medir o custo de um algoritmo contando passos (operações).
- Perceber que a contagem de passos independe da máquina.
- Contar os passos de um algoritmo simples.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Contar passos, não segundos.
Os objetivos desta aula. Entender por que medir por cronômetro engana. Medir o custo de um algoritmo contando passos (operações). Perceber que a contagem de passos independe da máquina. Contar os passos de um algoritmo simples.
Veja o essencial, parte por parte.
Por que o cronômetro engana. Medir eficiência por cronômetro engana: o mesmo código varia com a máquina.
Contando passos na prática. Contar passos é mais simples do que parece: você olha o algoritmo e conta quantas vezes as operações principais rodam.
O que realmente importa na contagem. Ao contar passos, um detalhe muda a mentalidade: o que importa é o comportamento com dados grandes, não com dados pequenos.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Por que o cronômetro engana
Como saber se um algoritmo é eficiente? A tentação é cronometrar: rode o programa e veja quanto demora. Mas o cronômetro engana, e por um motivo simples. O mesmo código roda mais rápido num computador potente e mais devagar num celular antigo; roda diferente se a máquina está ocupada com outras tarefas; roda diferente conforme a linguagem. Se você compara dois algoritmos pelo tempo, pode estar medindo a máquina, não o algoritmo. É como comparar dois corredores cronometrando um no plano e outro na subida: o relógio não conta a história justa. Para medir o algoritmo em si, você precisa de algo que não dependa de onde ele roda.
Esse algo é a contagem de passos. Em vez de perguntar quantos segundos, você pergunta quantas operações básicas o algoritmo executa: quantas comparações, quantas somas, quantas trocas. Esse número não muda de um computador para outro; ele é uma propriedade do algoritmo. Uma busca linear numa lista de mil itens faz até mil comparações, seja num supercomputador, seja num celular. O supercomputador faz essas mil comparações mais rápido, claro, mas são mil comparações nos dois. Contando passos, você compara algoritmos de forma justa, isolando a esperteza do método da força bruta da máquina. É assim que a computação fala de eficiência: em passos, não em segundos.
Contando passos na prática
Contar passos é mais simples do que parece: você olha o algoritmo e conta quantas vezes as operações principais rodam. Um laço que percorre uma lista de n itens fazendo uma comparação em cada volta faz n comparações. Dois laços aninhados, cada um de n voltas, fazem n vezes n operações, ou seja, n ao quadrado, exatamente o que você viu no módulo de laços aninhados. Uma busca binária faz cerca de vinte passos num milhão de itens, porque corta pela metade. Repare que, ao contar, a gente não se importa tanto com os detalhes miúdos (se são exatamente n ou n mais três comparações); o que importa é a forma geral do crescimento: cresce como n, como n ao quadrado, como o logaritmo? Essa forma é o coração da eficiência, e é o assunto da próxima aula.
🎮 Jogo da aula
Quantos passos?
Conte quantas vezes a linha do soma executa neste trecho, para uma lista de tamanho 5.
lista tem 5 itens
soma <- 0
para i de 0 até 4 faça
para j de 0 até 4 faça
soma <- soma + 1
fim
fimO que realmente importa na contagem
Ao contar passos, um detalhe muda a mentalidade: o que importa é o comportamento com dados grandes, não com dados pequenos. Para uma lista de cinco itens, qualquer algoritmo é instantâneo, então a eficiência não faz diferença ali. A eficiência começa a importar quando os dados crescem, e é aí que as diferenças entre algoritmos explodem. Por isso a análise de eficiência foca em como o número de passos cresce conforme o tamanho aumenta, e ignora os detalhes que não mudam essa tendência. Um algoritmo que faz n mais dez passos e outro que faz n mais mil passos têm, no fundo, o mesmo comportamento quando n é gigante: os dois crescem como n. Essa forma de olhar, focada na tendência de crescimento e não nos números exatos, é o que torna a análise de eficiência poderosa e simples ao mesmo tempo.
Teste rápido
Por que se mede a eficiência de um algoritmo contando passos, e não cronometrando o tempo?
Perguntas frequentes
- Por que não medir eficiência com um cronômetro?
- Porque o tempo depende da máquina: o mesmo código roda mais rápido num computador potente e mais devagar num fraco ou ocupado. Comparar algoritmos por tempo pode acabar medindo o hardware, não o algoritmo. A contagem de passos isola a esperteza do método da força da máquina.
- O que é contar passos?
- É medir o custo contando quantas operações básicas (comparações, somas, trocas) o algoritmo executa. Esse número é uma propriedade do algoritmo, igual em qualquer máquina. Uma busca linear em mil itens faz até mil comparações em qualquer computador, ainda que uns as executem mais rápido.
- Preciso contar cada operação exatamente?
- Não. O que importa é a forma geral do crescimento, não o número exato. Se um algoritmo faz n ou n mais três comparações, a tendência é a mesma: cresce como n. A análise de eficiência foca em como o custo cresce com o tamanho, ignorando os detalhes que não mudam essa tendência.
- Por que a eficiência só importa com dados grandes?
- Porque com poucos dados qualquer algoritmo é instantâneo, então a diferença é irrelevante. As diferenças entre algoritmos explodem quando os dados crescem: com um milhão de itens, um método pode levar um instante e outro, horas. Por isso a análise foca no comportamento em escala.
- Dois laços aninhados sempre custam n ao quadrado?
- Quando os dois percorrem a mesma coleção de n itens, sim: n voltas externas vezes n internas dão n ao quadrado. Se os laços têm tamanhos diferentes, o custo é o produto dos dois tamanhos. O ponto é que aninhar laços sobre os mesmos dados grandes multiplica o custo, o que fica caro rápido.
- Contar passos serve para qualquer algoritmo?
- Serve como forma de pensar o custo de qualquer algoritmo. Você identifica as operações principais e conta quantas vezes rodam em função do tamanho dos dados. Isso dá a tendência de crescimento, que é o que a notação Big-O, na próxima aula, resume num vocabulário curto e universal.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.