Módulo 12 - Quanto custa: eficiência e a noção de Big-O
Como o custo cresce com o tamanho
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Entender que a eficiência é sobre como o custo cresce com o tamanho.
- Reconhecer os padrões de crescimento: constante, linear, quadrático, logarítmico.
- Prever o que acontece com o custo quando os dados dobram.
- Associar algoritmos conhecidos a padrões de crescimento.
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: Como o custo cresce com o tamanho.
Os objetivos desta aula. Entender que a eficiência é sobre como o custo cresce com o tamanho. Reconhecer os padrões de crescimento: constante, linear, quadrático, logarítmico. Prever o que acontece com o custo quando os dados dobram. Associar algoritmos conhecidos a padrões de crescimento.
Veja o essencial, parte por parte.
O teste de dobrar os dados. Eficiência é como o custo MUDA quando os dados crescem, não o número de hoje.
Por que a forma importa mais que o número. Pode parecer estranho ignorar os números exatos e olhar só a forma do crescimento, mas há uma razão profunda para isso.
A hierarquia do crescimento. Vale guardar uma pequena hierarquia das formas, da melhor para a pior, porque ela orienta muitas decisões de programação.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
O teste de dobrar os dados
Existe um teste mental que revela a eficiência de um algoritmo na hora: pergunte o que acontece com o custo se os dados dobrarem de tamanho. A resposta classifica o algoritmo numa de poucas famílias, e cada família tem um destino bem diferente quando os dados ficam grandes. Se o custo não muda ao dobrar os dados, o algoritmo é de crescimento constante, o melhor de todos: ele é indiferente ao tamanho. Se o custo dobra quando os dados dobram, é linear: o esforço acompanha o tamanho, o que é razoável. Se o custo quadruplica ao dobrar os dados, é quadrático: começa a assustar, porque cresce rápido demais. E há um caso quase mágico, o logarítmico: dobrar os dados adiciona apenas um passo ao custo, um crescimento tão suave que parece indiferente ao tamanho.
Você já conheceu exemplos de cada família ao longo do curso, sem o nome. Acessar um item de lista pela posição, ou buscar um valor num dicionário pela chave, é constante: não importa o tamanho, custa um passo. A busca linear é linear: percorre até n itens, então dobrar a lista dobra o trabalho. Dois laços aninhados sobre a mesma lista, como na ordenação da bolha, são quadráticos: dobrar os dados quadruplica as operações. E a busca binária é logarítmica: corta pela metade a cada passo, então dobrar a lista só adiciona um corte. Reconhecer a família de um algoritmo é prever seu futuro: o quadrático que voa com mil itens pode travar com um milhão, enquanto o logarítmico nem sente a diferença.
Por que a forma importa mais que o número
Pode parecer estranho ignorar os números exatos e olhar só a forma do crescimento, mas há uma razão profunda para isso. Com dados grandes, a forma do crescimento domina qualquer detalhe. Imagine dois algoritmos: um linear que faz cem vezes n passos, e um quadrático que faz n ao quadrado passos. Para n pequeno, o linear parece pior, porque cem é um número grande. Mas conforme n cresce, o quadrático dispara e ultrapassa o linear, e a partir de um certo tamanho o linear vence com folga cada vez maior. A forma sempre vence o número quando os dados são grandes o bastante. É por isso que a análise de eficiência classifica algoritmos pela forma, não pela contagem exata: a forma é o que decide quem aguenta a escala. Um algoritmo de forma melhor sempre vence um de forma pior, dado um volume grande de dados.
🎮 Jogo da aula
Que forma de crescimento?
Para cada operação, escolha se o custo é linear (dobra ao dobrar os dados) ou constante/logarítmico (mal se mexe ao dobrar os dados).
A hierarquia do crescimento
Vale guardar uma pequena hierarquia das formas, da melhor para a pior, porque ela orienta muitas decisões de programação. No topo, a mais desejada, está a constante: o custo não muda com o tamanho. Logo abaixo, quase tão boa, a logarítmica: cresce tão devagar que aguenta volumes enormes. Depois a linear: razoável, o custo acompanha o tamanho de forma justa. Mais abaixo, a quadrática: aceitável para dados pequenos, perigosa para grandes. E existem formas ainda piores, que crescem tão rápido que se tornam inviáveis até com poucas dezenas de itens, mas essas são raras no dia a dia. Sempre que você puder trocar um algoritmo quadrático por um linear ou logarítmico, ou uma busca linear por uma consulta constante de dicionário, você está subindo nessa hierarquia, e é aí que moram os maiores ganhos de desempenho de um programa.
Teste rápido
Um algoritmo tem custo quadrático. Se você DOBRA o tamanho dos dados, o que acontece com o custo?
Perguntas frequentes
- O que significa dizer que a eficiência é sobre o crescimento?
- Significa que o importante não é quantos passos o algoritmo faz para poucos dados, mas como esse número muda quando os dados crescem. Um algoritmo cujo custo dobra ao dobrar os dados (linear) tem futuro bem diferente de um cujo custo quadruplica (quadrático). A forma do crescimento decide quem aguenta a escala.
- Quais são as formas de crescimento mais comuns?
- Constante (o custo não muda com o tamanho), logarítmica (dobrar os dados adiciona um passo), linear (dobrar dobra o custo) e quadrática (dobrar quadruplica). Da melhor para a pior: constante, logarítmica, linear, quadrática. Reconhecer a forma de um algoritmo é prever como ele se comporta com dados grandes.
- Por que a forma importa mais que o número exato de passos?
- Porque com dados grandes a forma domina. Um algoritmo linear que faz cem vezes n passos parece pior que um quadrático para n pequeno, mas o quadrático dispara e o ultrapassa conforme n cresce. A forma melhor sempre vence a pior num volume grande de dados, então é ela que classifica a eficiência.
- O que é crescimento logarítmico, em palavras simples?
- É um crescimento tão suave que dobrar os dados adiciona só um passo ao custo. Vem de algoritmos que cortam o problema pela metade a cada passo, como a busca binária. Por isso um logaritmo aguenta volumes enormes: um bilhão de itens custa cerca de trinta passos. É quase tão bom quanto o custo constante.
- Como sei a forma de crescimento de um algoritmo?
- Faça o teste de dobrar: imagine os dados dobrando e veja o que acontece com o número de passos. Não muda? Constante. Dobra? Linear. Quadruplica? Quadrático. Adiciona um passo? Logarítmico. Contar os passos em função do tamanho, como na aula anterior, revela essa forma.
- Existem formas piores que a quadrática?
- Existem, e crescem tão rápido que ficam inviáveis com poucas dezenas de itens (por exemplo, testar todas as combinações possíveis de algo). Elas aparecem em problemas difíceis específicos. No dia a dia, as formas comuns vão de constante a quadrática, e o objetivo é sempre ficar o mais alto possível nessa hierarquia.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.