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.

Motivação para algoritmos eficientes<br />

• Com um algoritmo ineficiente, um computador rápido não ajuda!<br />

• Suponha que uma máquina resolva um problema <strong>de</strong> tamanho N em um<br />

dado tempo.<br />

• Qual tamanho <strong>de</strong> problema uma máquina 10 vezes mais rápida resolve<br />

no mesmo tempo?<br />

Número <strong>de</strong> operações Máquina rápida<br />

log2 n N 10<br />

n 10N<br />

n log2 n<br />

n<br />

10N (N gran<strong>de</strong>)<br />

2<br />

√<br />

10N ≈ 3.2N<br />

n3 3 √ 10N ≈ 2.2N<br />

2n 3<br />

N + log2 10 ≈ N + 3.3<br />

n N + log3 10 ≈ N + 2.1<br />

Exemplo 1.4<br />

Esse exemplo mostra como calcular os dados da tabela acima. Dado um<br />

algoritmo que precisa f(n) passos <strong>de</strong> execução numa <strong>de</strong>terminada máquina.<br />

Qual o tamanho <strong>de</strong> problema n ′ que po<strong>de</strong>mos resolver numa máquina c vezes<br />

mais rápido?<br />

A quantida<strong>de</strong> n ′ satisfaz f(n ′ ) = cf(n). Para funções que possuam uma<br />

inversa (por exemplo funções monotônicas) obtemos n ′ = f −1 (cf(n)). Por<br />

exemplo para f(n) = log 2 n e c = 10 (exemplo acima), temos log 2 n ′ =<br />

10 log 2 n ⇐⇒ n ′ = n 10 . ♦<br />

Crescimento <strong>de</strong> funções<br />

15

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

Saved successfully!

Ooh no, something went wrong!