13.04.2013 Views

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Algoritmo Comp. C1 Comp. C2<br />

A<br />

B<br />

2×(10 6 ) 2 OP<br />

10 7 OP/s = 2 × 105 s<br />

50(10 6 ) log 10 6 OP<br />

10 7 OP/s<br />

Um panorama <strong>de</strong> tempo <strong>de</strong> execução<br />

• Tempo constante: O(1) (raro).<br />

= 30s<br />

2×(10 6 ) 2 OP<br />

10 9 OP/s = 2 × 103 s<br />

50(10 6 ) log 10 6 OP<br />

10 9 OP/s<br />

= 0.3s<br />

• Tempo sublinear (log(n), log(log(n)), etc): Rápido. Observe que o algoritmo<br />

não po<strong>de</strong> ler toda entrada.<br />

• Tempo linear: Número <strong>de</strong> operações proporcional à entrada.<br />

• Tempo n log n: Comum em algoritmos <strong>de</strong> divisão e conquista.<br />

• Tempo polinomial n k : Freqüentemente <strong>de</strong> baixa or<strong>de</strong>m (k ≤ 10), consi<strong>de</strong>rado<br />

eficiente.<br />

• Tempo exponencial: 2 n , n!, n n consi<strong>de</strong>rado intratável.<br />

Exemplo 1.7<br />

Exemplos <strong>de</strong> algoritmos para as <strong>complexida<strong>de</strong></strong>s acima:<br />

• Tempo constante: Determinar se uma sequência <strong>de</strong> números começa<br />

com 1.<br />

• Tempo sublinear: Busca binária.<br />

• Tempo linear: Buscar o máximo <strong>de</strong> uma sequência.<br />

• Tempo n log n: Mergesort.<br />

• Tempo polinomial: Multiplicação <strong>de</strong> matrizes.<br />

• Tempo exponencial: Busca exaustiva <strong>de</strong> todos subconjuntos <strong>de</strong> um conjunto,<br />

<strong>de</strong> todas permutações <strong>de</strong> uma sequência, etc.<br />

♦<br />

♦<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!