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.

Exemplo 2.8 (Máximo)<br />

(Ver Toscani e Veloso [64, cap. 3.3].)<br />

Máximo<br />

Algoritmo 2.4 (Máximo)<br />

Entrada Uma sequência <strong>de</strong> números a1, . . . , an com n > 0.<br />

Saída O máximo m = maxi ai.<br />

1 m := a1<br />

2 for i := 2, . . . , n do<br />

3 i f ai > m then<br />

4 m := ai<br />

5 end i f<br />

6 end for<br />

7 return m<br />

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

Para a análise supomos que toda operação básica (atribuição, comparação,<br />

aritmética) têm um custo constante. Po<strong>de</strong>mos obter uma cota superior simples<br />

<strong>de</strong> O(n) observando que o laço sempre executa um número fixo <strong>de</strong> operações<br />

(ao máximo dois no corpo). Para uma análise mais <strong>de</strong>talhada vamos <strong>de</strong>notar<br />

o custo em números <strong>de</strong> operações <strong>de</strong> cada linha como li e supomos que toda<br />

operação básico custa 1 e a linha 2 do laço custa dois (l2 = 2, para fazer um<br />

teste e um incremento), então temos<br />

l1 + (n − 1)(l2 + l3) + kl4 + l7 = 3n + k − 1<br />

com um número <strong>de</strong> execuções da linha 4 ainda não conhecido k. No melhor<br />

caso temos k = 0 e custos <strong>de</strong> 3n − 1. No pior caso m = n − 1 e custos <strong>de</strong><br />

4n−2. É fácil ver que assintoticamente todos os casos, inclusive o caso médio,<br />

têm custo Θ(n). ♦<br />

Exemplo 2.9 (Busca seqüencial)<br />

O segundo algoritmo que queremos estudar é a busca seqüencial.<br />

Busca seqüencial<br />

43

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

Saved successfully!

Ooh no, something went wrong!