big - o
DESCRIPTION
Big - O. Monitoria de Matemática Discreta 2008-1. Por que estudar big-O???. Conceitos fundamentais: Algoritmo: passos para se executar uma tarefa. Ex: algoritmo de adição, subtração... Programa: uma forma de representação do algoritmo. Ex: Calculadora. - PowerPoint PPT PresentationTRANSCRIPT
Big - OBig - OBig - OBig - OMonitoria de Matemática Monitoria de Matemática
DiscretaDiscreta2008-12008-1
Por que estudar big-O???
• Conceitos fundamentais:• Algoritmo: passos para se executar
uma tarefa. Ex: algoritmo de adição, subtração...• Programa: uma forma de
representação do algoritmo.Ex: Calculadora
O que é importante para um programa
rodar???
Será que um super – hiper – mega – power – computador executa um programa no mesmo intervalo de tempo que um micro computador???
• Tempo
Será que o programa 1 executa melhor ou pior que o programa 2?
1. Loop: N é um número inteirofor(int i = 0; i <= N; i = i + 1){
/*aqui tem uma soma*/}2. Iteração sem loop’sint x = 1;Int y = 2;
y = y + 2;
• Tamanho e eficiência do programa
Tudo bem, mas...O que isso tem a ver com big –
O???
• Forma de verificar que programa é melhor
• Verificando limite de funções• Dependente do tamanho do
programa• Independente de tempo
Como vamos fazer... :s ???
• Duas formas:
1. Provas matemáticas 2. Leis matemáticas
É melhor...
Leis Matemáticas !!!!1. Retire todas as constantes
(independente de tempo):
Ex: f(x): 3x2 + 9
Fica assim: f(x): x2
O(x2)
2.Fica sendo o big-O aquele que possuir maior expoente (pior caso):
Ex: g(x) = 3x2 + 70x5
Fica assim: g(x) = x2 + x5 (1ª lei) g(x) = x5 (2ª lei) O(x5 )
3. Se puder reduzir os expoentes, reduza (melhores comparações):
Ex: h(x) = 3x2 + 70x5 + 10 x12/x4
Fica assim: h(x) = 3x2 + 70x5 + 10 x8 (3ª lei) h(x) = x2 + x5 + x8 (1ª lei) h(x) = x8 (2ª lei)
O(x8)
4. Se puder ampliar os expoentes, amplie:
Ex: r(x) = 3x2 + 70x5 + 5(x6 . x4)
Fica assim: r(x) = 3x2 + 70x5 + 5(x10) (4ª lei) r(x) = x2 + x5 + x10 (1ª lei) r(x) = (x10) (2ª lei)
O(x10)
E que Lei tem prioridade???
• As leis por ordem de prioridades:
4ª e 3ª < 1ª < 2ª
Obs: a 4ª e 3ª leis estão no mesmo nível.
E quando não for com potencias???
n!2n
n2
n log nnlog n1
1 <= log n <= n <= n log n <= n2 <= 2n <= n!
O resto é derivada deles...
Vamos agora analisar enunciados...
• Quando for pedido “A melhor estimativa” ...
• Quando for pedido “O menor inteiro n”…
Exercícios de provas anteriores:
1. Determine o menor inteiro n de forma que f(x) é O(xn) para cada uma das seguintes funções. Justifique:
a) f(x) = (x5 + x2 + 1) / (x4 + 1)b) f(x) = 5x2 + x3logx + xc) f(x) = 3xlogx + (x2 + 3)logx
2. Dê a melhor estimativa O grande possível para as seguintes funções:
a)(n3 + n2logn)(logn + 1) + (15logn + 30)(n3 + 2)
b)(nlogn + 1)2 + (logn + 1)(n2 + 1)
ÓTIMA SORTE !!!