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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2. Análise <strong>de</strong> <strong>complexida<strong>de</strong></strong><br />

A <strong>complexida<strong>de</strong></strong> média calcula-se como<br />

cp[A](n) = E[<strong>de</strong>semp[A]] = E[2p + 1] = 2E[p] + 1<br />

E[p] = <br />

Pr[p = i]i = 2 −n n + <br />

2 −n n<br />

i≥0<br />

1≤i≤n<br />

= 2 −n n + 2 − 2 −n (n + 2) = 2 − 2 1−n<br />

cp[A](n) = 5 − 2 2−n = O(1)<br />

(A.39)<br />

A seguinte tabela mostra os custos médios para 1 ≤ n ≤ 9<br />

n 1 2 3 4 5 6 7 8 9<br />

Cm 3 4 4.5 4.75 4.875 4.938 4.969 4.984 4.992<br />

Exemplo 2.14 (Or<strong>de</strong>nação por inserção direta)<br />

(Continuando exemplo 2.7.)<br />

Or<strong>de</strong>nação por inserção direta<br />

• Qual o número médio <strong>de</strong> comparações?<br />

• Observação: Com as entradas distribuídas uniformemente, a posição da<br />

chave i na sequência já or<strong>de</strong>nada também é.<br />

• Logo chave i precisa <br />

comparações em média.<br />

1≤j≤i<br />

j/i = (i + 1)/2<br />

• Logo o número esperado <strong>de</strong> comparações é<br />

<br />

2≤i≤n<br />

(i + 1)/2 = 1/2 <br />

3≤i≤n+1<br />

i = 1/2 ((n + 1)(n + 2)/2 − 3) = Θ(n 2 )<br />

Exemplo 2.15 (Bubblesort)<br />

(Continuando exemplo 2.6.)<br />

O número <strong>de</strong> comparações do Bubblesort é in<strong>de</strong>pen<strong>de</strong>nte da entrada. Logo,<br />

com essa operação básica temos uma <strong>complexida<strong>de</strong></strong> pessimista e média <strong>de</strong><br />

Θ(n 2 ).<br />

50<br />

♦<br />

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

Saved successfully!

Ooh no, something went wrong!