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.

1. Introdução e conceitos básicos<br />

Complexida<strong>de</strong> <strong>de</strong> algoritmos<br />

• Consi<strong>de</strong>re dois algoritmos A e B com tempo <strong>de</strong> execução O(n 2 ) e O(n 3 ),<br />

respectivamente. Qual <strong>de</strong>les é o mais eficiente ?<br />

• Consi<strong>de</strong>re dois programas A e B com tempos <strong>de</strong> execução 100n 2 milisegundos,e<br />

5n 3 milisegundos, respectivamente, qual é o mais eficiente?<br />

Exemplo 1.5<br />

Consi<strong>de</strong>rando dois algoritmos com tempo <strong>de</strong> execução O(n 2 ) e O(n 3 ) esperamos<br />

que o primeiro seja mais eficiente que o segundo. Para n gran<strong>de</strong>, isso é<br />

verda<strong>de</strong>iro, mas o tempo <strong>de</strong> execução atual po<strong>de</strong> ser 100n 2 no primeiro e 5n 3<br />

no segundo caso. Logo para n < 20 o segundo algoritmo é mais rápido. ♦<br />

Comparação <strong>de</strong> tempo <strong>de</strong> execução<br />

• Assintoticamente consi<strong>de</strong>ramos um algoritmo com <strong>complexida<strong>de</strong></strong> O(n 2 )<br />

melhor que um algoritmo com O(n 3 ).<br />

• De fato, para n suficientemente gran<strong>de</strong> O(n 2 ) sempre é melhor.<br />

• Mas na prática, não po<strong>de</strong>mos esquecer o tamanho do problema real.<br />

100000<br />

80000<br />

60000<br />

40000<br />

20000<br />

0<br />

0<br />

5<br />

10<br />

15<br />

x<br />

Exemplo 1.6<br />

Consi<strong>de</strong>re dois computadores C1 e C2 que executam 10 7 e 10 9 operações por<br />

segundo (OP/s) e dois algoritmos <strong>de</strong> or<strong>de</strong>nação A e B que necessitam 2n 2 e<br />

50n log 10 n operações com entrada <strong>de</strong> tamanho n, respectivamente. Qual o<br />

tempo <strong>de</strong> execução <strong>de</strong> cada combinação para or<strong>de</strong>nar 10 6 elementos?<br />

18<br />

n^2<br />

n^3<br />

20<br />

25<br />

30

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

Saved successfully!

Ooh no, something went wrong!