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 />

1. Atribuição: v:=e<br />

2. Sequência: c1;c2<br />

3. Condicional: se b então c1 senão c2<br />

4. Iteração <strong>de</strong>finida: para i <strong>de</strong> j até m faça c<br />

5. Iteração in<strong>de</strong>finida: enquanto b faça c<br />

A forma “se b então c1” vamos tratar como abreviação <strong>de</strong> “se b então c1 senão skip”<br />

com comando “skip” <strong>de</strong> custo 0.<br />

Observe que a metodologia não implica que tem um algoritmo que, dado um<br />

algoritmo como entrada, computa a <strong>complexida<strong>de</strong></strong> <strong>de</strong>le. Este problema não é<br />

computável (por quê?).<br />

Convenção 2.1<br />

A seguir vamos enten<strong>de</strong>r implicitamente todas operações sobre funções pontualmente,<br />

i.e. para alguma operação ◦, e funções f, g com dom(f) = dom(g)<br />

temos<br />

∀d ∈ dom(f) (f ◦ g) = f(d) ◦ g(d).<br />

Componentes<br />

• A <strong>complexida<strong>de</strong></strong> <strong>de</strong> um algoritmo po<strong>de</strong> ser analisada em termos <strong>de</strong> suas<br />

componentes (princípio <strong>de</strong> composicionalida<strong>de</strong>).<br />

• Po<strong>de</strong>-se diferenciar dois tipos <strong>de</strong> componentes: componentes conjuntivas<br />

e componentes disjuntivas.<br />

• Objetivo: Analisar as componentes in<strong>de</strong>pen<strong>de</strong>ntemente (como sub-algoritmos)<br />

e <strong>de</strong>pois compor as <strong>complexida<strong>de</strong></strong>s <strong>de</strong>las.<br />

Composição <strong>de</strong> componentes<br />

36<br />

• Cuidado: Na composição <strong>de</strong> componentes o tamanho da entrada po<strong>de</strong><br />

mudar.<br />

• Exemplo: Suponha que um algoritmo A produz, a partir <strong>de</strong> uma lista<br />

<strong>de</strong> tamanho n, uma lista <strong>de</strong> tamanho n2 em tempo Θ(n2 ).<br />

n <br />

A <br />

2 n<br />

<br />

A <br />

4 n<br />

• A sequência A; A, mesmo sendo composta pelos dois algoritmos com<br />

Θ(n 2 ) individualmente, tem <strong>complexida<strong>de</strong></strong> Θ(n 4 ).

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

Saved successfully!

Ooh no, something went wrong!