• Nenhum resultado encontrado

Análise de Algoritmos

N/A
N/A
Protected

Academic year: 2022

Share "Análise de Algoritmos"

Copied!
14
0
0

Texto

(1)

Análise de Algoritmos

(2)

• Sejam e constantes, seja uma função definida sobre os inteiros não negativos pela recorrência

• então pode ser limitado assintoticamente como a seguir:

1. Se para alguma constante , então

2. Se , então

3. Se para alguma constante , e se . para alguma constante e grande,

então

www.nakamura.eti.br/eduardo Análise de Algoritmos 2

 1

a b  1 T (n )

) (n T

  

 

 

1 se

, ) (

1 se

, ) 1

( aT n b f n n

n n T

O n

b

a n

f ( ) log  0

n

b

a

n

T ( )   log

n

b

a

n

f ( )   log T ( n ) n log

b

a log n

n

b

a n

f ( ) log

  n b cf (n )

af

 0

( )

)

( n f n

T  

n

(3)

• Exemplo #01

www.nakamura.eti.br/eduardo Análise de Algoritmos 3

  

 

 

1 se

, 1 2

1 se

, ) 1

( T n n

n n T

) (log )

( n n

T  

 1 a

 2 b

) 1 ( 1

)

( n    f

0 1 log

log b a2

      1

)

( n   n log   n 0  

f

b

a

n n   n n n

n

T ( )   log

b

a log   0 log   log

(4)

• Exemplo #02

www.nakamura.eti.br/eduardo Análise de Algoritmos 4

) ( )

( n n

T  

 2 a

 2 b

) 1 ( 1

)

( n    f

1 2 log

log b a2

      1 , para 1

)

( nO n log O n 1 O 

f

b

a

n    n   n

n

T ( )   log

b

a   1  

  

 

 

1 se

, 1 2

2

1 se

, ) 1

( T n n

n n

T

(5)

• Exemplo #03

www.nakamura.eti.br/eduardo Análise de Algoritmos 5

) ( )

( n n

T  

 2 a

 3 b

) ( )

( n n n

f   

6 , 0 2 log

log b a3

      , para 0 , 4

)

( n   n log   n 0 , 6   n 

f

b

a

f n    n

n

T ( )   ( )  

  

 

 

1 se

, 3

2

1 se

, ) 1

( T n n n

n n T

  n b cf   n 2 f   n 3 cf     n 2 3 n cn , 3 c 1

af verdade 2

(6)

• Mostre que o custo do Bubble-sort é

www.nakamura.eti.br/eduardo Análise de Algoritmos 6

) ( n 2

BUBBLE-SORT(A, n)

1: for i  1 to n do

2: for j  i + 1 to n do 3: if A[j] < A[i] then 4: troca(A[i], A[j]);

5: end if

6: end for

7: end for

(7)

• Mostre que o custo do Bubble-sort é

www.nakamura.eti.br/eduardo Análise de Algoritmos 7

) ( n 2

BUBBLE-SORT(A, n)

1: for i  1 to n do

2: for j  i + 1 to n do 3: if A[j] < A[i] then 4: troca(A[i], A[j]);

5: end if 6: end for 7: end for

Avaliar o número de

comparações

(8)

• Mostre que o custo do Bubble-sort é

www.nakamura.eti.br/eduardo Análise de Algoritmos 8

) ( n 2

BUBBLE-SORT(A, n)

1: for i  1 to n do

2: for j  i + 1 to n do 3: if A[j] < A[i] then 4: troca(A[i], A[j]);

5: end if 6: end for 7: end for

 1

)

(n

T

(9)

• Mostre que o custo do Bubble-sort é

www.nakamura.eti.br/eduardo Análise de Algoritmos 9

) ( n 2

BUBBLE-SORT(A, n)

1: for i  1 to n do

2: for j  i + 1 to n do 3: if A[j] < A[i] then 4: troca(A[i], A[j]);

5: end if 6: end for 7: end for

 

 

 

n

i

j 1

 1

)

(n

T

(10)

     

 

n

i

n

i j

1 1

1

• Mostre que o custo do Bubble-sort é

www.nakamura.eti.br/eduardo Análise de Algoritmos 10

) ( n 2

BUBBLE-SORT(A, n)

1: for i  1 to n do

2: for j  i + 1 to n do 3: if A[j] < A[i] then 4: troca(A[i], A[j]);

5: end if 6: end for 7: end for

)

(n

T

(11)

• Resolvendo os somatórios temos

www.nakamura.eti.br/eduardo Análise de Algoritmos 11

 

 

n n

n n n

n T

n n n

n n n

n T

i n

i n n

T

i n n

T n T

n

i n

i n

i n

i n

i

n

i j

 

 

 

 

 

 

  

2 2

2

2 2

2

1 1

1 1

1 1

2 1 2

) 2 (

2 2

) 1 ) (

( ) (

1 ) 1 (

) (

1 )

(

(12)

• Observe e analise a variação abaixo do merge-sort, assumindo que a função MERGE3 possui custo n.

www.nakamura.eti.br/eduardo Análise de Algoritmos 12

MERGE3-SORT(A, p, r) 1: if p < r then

2: d  (p+r)/3; // inteiro 3: MERGE3-SORT(A,p,p+d);

4: MERGE3-SORT(A,P+d+1,r-d);

5: MERGE3-SORT(A,r-d+1,r);

6: MERGE3(A,p,d,r); // custo n 7: end if

  

 

 

1 1

3 3

1 ) 1

( T n n n

n n

T , se

se

,

(13)

• Analise o algoritmo abaixo que calcula o n-ésimo elemento de uma PG de razão 2

www.nakamura.eti.br/eduardo Análise de Algoritmos 13

NUM-PG2(n)

1: if n = 0 then 2: return 1;

3: else

4: return NUM-PG2(n-1) + NUM-PG2(n-1);

5: end if

 

 

 

0 se

, 1 1 2

0 se

, ) 1

( T n n

n n

T

(14)

• Analise o algoritmo abaixo que troca o elemento da posição i com o elemento da posição i + 1, caso o elemento em i+1 seja par

www.nakamura.eti.br/eduardo Análise de Algoritmos 14

EMBARALHA(A, i, f) 1: if i < f then

2: if (A[i+1] mod 2) = 0 then 3: troca(A[i], A[i+1]);

4: end if

5: EMBARALHA(A, i+2, f);

6: end if

 

 

 

1 se

, 1 2

1 se

, ) 1

( T n n

n n

T

Referências

Documentos relacionados

Pelo gráfico percebe-se o efeito da temperatura sobre a perda de umidade após secagem; neste caso, os maiores valores de perda de umidade (~20%) ocorrem para temperatura de 90º,

Os dados foram obtidos através do Serviço de Inspeção Federal (SIF n° 941), indicando o município de origem, número de diagnosticados e as patologias dos bovinos

I. Se a concentração mínima for de 20 mg/L, então o antibiótico deve ser ingerido novamente após 8 horas. A concentração de antibiótico no sangue cresce mais rápido do que

“O plágio acadêmico se configura quando um aluno retira, seja de livros ou da Internet, ideias, conceitos ou frases de outro autor (que as formulou e as publicou), sem lhe dar o

Este artigo é um estudo da Operação Potenciação em relação aos Números Inteiros Negativos e se baseia na dissertação do curso de Mestrado Acadêmico da PUC/SP,

[r]

Deve-se atentar para a pesquisa dos “sinais de alerta”, pois a causa da lombalgia ou lombociatralgia pode estar fora da coluna vertebral, principalmente nas lombalgias

Se não estiver, puxe suavemente para fora o suporte do tubo de sucção e gire até que ele se alinhe com a posição correta de travamento... Recomenda-se fazer isto com a carcaça