Analisar algoritmos é essencial para entender sua eficiência e comparar diferentes abordagens. A notação Big Oh é uma ferramenta crucial que simplifica as complexidades de tempo, focando nas tendências gerais e ignorando detalhes intricados.
Classes de dominância:
* Constante
* Logarítmica
* Linear
* Super linear
* Quadrática
* Cúbica
* Exponencial
* Fatorial
Agrupa funções em classes.
Funções da mesma classe têm a mesma ordem de crescimento.
Funções de classes diferentes são diferentes em relação à notação.
Taxas de Crescimento e Relações de Dominância
Ignora as diferenças entre constantes multiplicativas.
As diferenças não afetam o crescimento.
Simplifica complexidades de tempo.
Ignora detalhes intricados.
Foca nas tendências gerais.
Importante para comparar a eficiência de algoritmos.
Análise simplificada.
Melhor, Pior e Complexidade de Caso Médio
A notação "Big Oh"
simplifica a complexidades de tempo.
na prática a complexidade
do Pior Caso é a mais útil.
Caso Médio:
Número médio de passos.
Pior Caso:
Número máximo de passos.
Melhor Caso:
Número mínimo de passos.
O Modelo de Computação RAM
Utilidades:
Entender como um algoritmo funcionará em um computador real.
Análise de algoritmos independente da máquina.
Computador hipotético.
Projeta algoritmos independentes de máquina.
Características:
Operações simples levam um passo de tempo.
Acessos à memória levam um passo de tempo.
Loops e sub-rotinas envolvem várias operações.
Memória é ilimitada.