1 / 15

Big - O

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.

thisbe
Download Presentation

Big - O

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Big - O Monitoria de Matemática Discreta 2008-1

  2. 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

  3. 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

  4. Será que o programa 1 executa melhor ou pior que o programa 2? • Loop: N é um número inteiro for(int i = 0; i <= N; i = i + 1){ /*aqui tem uma soma*/ } 2. Iteração sem loop’s int x = 1; Int y = 2; y = y + 2; • Tamanho e eficiência do programa

  5. 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

  6. Como vamos fazer... :s ??? • Duas formas: • Provas matemáticas • Leis matemáticas É melhor...

  7. Leis Matemáticas !!!! • Retire todas as constantes (independente de tempo): Ex: f(x): 3x2 + 9 Fica assim: f(x): x2 O(x2)

  8. 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 )

  9. 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)

  10. 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)

  11. 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.

  12. E quando não for com potencias??? n! 2n n2 n log n n log n 1 1 <= log n <= n <= n log n <= n2 <= 2n <= n! O resto é derivada deles...

  13. Vamos agora analisar enunciados... • Quando for pedido “A melhor estimativa” ... • Quando for pedido “O menor inteiro n”…

  14. Exercícios de provas anteriores: • Determine o menor inteiro n de forma que f(x) é O(xn) para cada uma das seguintes funções. Justifique: • f(x) = (x5 + x2 + 1) / (x4 + 1) • f(x) = 5x2 + x3logx + x • f(x) = 3xlogx + (x2 + 3)logx

  15. 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 !!!

More Related