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.

2.2. Complexida<strong>de</strong> pessimista<br />

Exemplo 2.4<br />

Continuando o exemplo 2.2 po<strong>de</strong>mos examinar a atribuição v := or<strong>de</strong>ne(w).<br />

Com <strong>complexida<strong>de</strong></strong> pessimista para a or<strong>de</strong>nação da lista cp[or<strong>de</strong>ne(w)] =<br />

O(n 2 ) e <strong>complexida<strong>de</strong></strong> cp[←e] = O(n) para a transferência, temos cp[v :=<br />

or<strong>de</strong>ne(w)] = O(n 2 ) + O(n) = O(n 2 ). ♦<br />

Iteração <strong>de</strong>finida<br />

Seja C =para i <strong>de</strong> j até m faça c<br />

• O número <strong>de</strong> iterações é fixo, mas j e m <strong>de</strong>pen<strong>de</strong>m da entrada d.<br />

• Seja N(n) = maxd{m(d)−j(d)+1 | tam(d) ≤ n} e N ∗ (n) = max{N(n), 0}.<br />

• N ∗ (n) é o máximo <strong>de</strong> iterações para entradas <strong>de</strong> tamanho até n.<br />

• Tendo N ∗ , po<strong>de</strong>mos tratar a iteração <strong>de</strong>finida como uma sequência<br />

que resulta em<br />

Iteração in<strong>de</strong>finida<br />

Seja C =enquanto b faça c<br />

c; c; · · · ; c<br />

<br />

N ∗ (n) vezes<br />

cp[C] ≤ N ∗ cp[c]<br />

• Para <strong>de</strong>terminar a <strong>complexida<strong>de</strong></strong> temos que saber o número <strong>de</strong> iterações.<br />

• Seja H(d) o número da iteração (a partir <strong>de</strong> 1) em que a condição é falsa<br />

pela primeira vez<br />

• e h(n) = max{H(d) | tam(d) ≤ n} o número máximo <strong>de</strong> iterações com<br />

entradas até tamanho n.<br />

• Em analogia com a iteração <strong>de</strong>finida temos uma sequência<br />

e portanto<br />

b; c; b; c; · · · ; b; c;<br />

b<br />

<br />

h(n)−1 vezes<br />

cp[C] ≤ (h − 1)cp[c] + hcp[b]<br />

• Caso o teste b é absorvido pelo escopo c temos<br />

cp[C] ≤ (h − 1)cp[c]<br />

Observe que po<strong>de</strong> ser difícil <strong>de</strong>terminar o número <strong>de</strong> iterações H(d); em geral<br />

a questão não é <strong>de</strong>cidível.<br />

39

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

Saved successfully!

Ooh no, something went wrong!