Big O fala sobre como os algoritmos ESCALAM a depender do tamanho do input, e não necessariamente sobre a performance do algoritmo.
<aside>
💡
É uma forma de denotar desempenho de algoritmos, mas não é uma medida de performance
</aside>
<aside>
💡
Big O não mede o tempo exato de execução de um algoritmo, mas sim como o tempo cresce à medida que o tamanho do input aumenta. 📈
</aside>
Big O pode ser usado para medir a complexidade temporal e a complexidade espacial de um algoritmo.
- Complexidade Temporal: Diz respeito ao tempo de execução (runtime), ou seja, quanto de tempo demora em runtime. Mais comum em entrevistas
- Complexidade Espacial: Diz respeito ao quanto de memória adicional precisamos alocar
Análise assintótica é a forma de analisar como um algoritmo se comporta em termos de tempo e memória à medida que o tamanho da entrada cresce.
Principais notações do BIG O:
O(1) – Complexidade Constante →
"Acender a luz com um interruptor – leva sempre o mesmo tempo, não importa o tamanho da casa."
- 🧠 Explicado usando Feynman Technique
- 🧐 Exemplo prático
- ⏰ Falando sobre complexidade Temporal
- 👩🏼🚀 Falando sobre complexide Espacial
- 🔍 Como descobrir se é O(1)?