Você está na página 1de 2

- O melhor caso de execução de algoritmo executa o menor numero de instrucoes para

dar uma resposta

- o pior caso é o maximo de instrucoes para a implementacao

- N é o tamanho de entrada

- Para descrever uma metodologia de análise de um algoritmo baseado em uma funcao


matematica, precisa-se definir os componentes de:
. Linguagem (de programação) para descricao de algoritmos
. Um modelo computacional para execucao do algoritmo
. Uma métrica para medir o tempo de execução do algoritmo

- Modelo computacional: RAM

- A análise assintótica começa com a contagem do numero de instruções que o


algoritmo precisa para executar

- Funcoes lineares são representadas por N


Ex: n+1, n+3, 2n+2...

- Funcoes quadraticas são representadas por n ao quadrado


Ex: 2n²+1, 6n²+3n, 2n²+5...

- o crescimento de uma funcao quadrática é sempre maior que de uma função linear (n
< n²) e podemos indicar essa relação com a anotação assintótica -> n = O(n²)

A anotação O indica qual é a função dominante.

Para N = O(n²), indicamos que a função linear N é dominada assintoticamente pela


função (n²). Isso também pode ser entendido que: a função n² tem um crescimento
maior OU igual à função linear N

- A anotação O também pode ser usada nos casos onde as curvas tem o mesmo
crescimento (as lineares). Ex:
n+3 pode ser representada por O(n)
2n+2 -> O(n)
2n+n+1 -> O(n²)

- A anotação O indica um limite superior, uma determinada função f(x) está limitada
ao crescimento de uma função g(x) nessa anotação: f(x) = O (g(x)). Assintoticamente
g(x) domina f(x). E g(x) representa um crescimento igual ou superior a f(x)

- Quando o crescimento da função linear é menor que o do crescimento da função


quadrática, temos que n² > n
E a anotação assintotica dessa relação seria n² = Omega(n)

Temos:
n+3 -> omega(n)
2n+2 -> omega(n)
2n² + n + 1 -> omega(n²)

- A anotação omega indica um limite inferior. Ex:


f(x) = omega(g(x)) -> assintoticamente, g(x) tem um comportamento igual ou inferior
a f(x). Esse é o melhor caso de execução do algoritmo.

O melhor caso é sempre uma função linear, e o pior caso é sempre uma função
quadrática. A complexidade do algoritmo é descrito como Omega sendo o limitante
inferior, e O sendo o limitante superior.
A anotação Theta indica que um limite RESTRITO a complexidade do algoritmo.
Ex:
Theta(n) e Theta(n²).
Temos que:
Theta de (n) indica que a função linear N é SEMPRE o melhor caso
Theta de (n²) indica que a função quadrática é SEMPRE o pior caso

Comportamento constante é indicado como O(1). Onde o algoritmo sempre irá executar
a mesma quantidade de vezes.

f(n) = O (log n)
Logaritmo indica que o algoritmo resolve um problema transformando-o em problemas
menores (como o algoritmo de pesquisa binária).
Ex:
Para n = 1000, log(n) é aproximadamente 10
Para n = 1 000 000, log (n) é aproximadamente 20

Você também pode gostar