Notas de Aula (Google Docs)
1. Demonstrar por inducao matematica que

, para

2. Demonstrar por inducao matematica que

, para
——————————————————————————
Análise de fragmentos de código
for(j=1l j<=n; j++) |
)
|
)
sum++; |
)
| |
Analise: Como operação SUM ++ é o(1), então a complexidade do codigo é equivalente ao numero de vezes que a operação SUM ++ é O(n2)
Ou ainda: Temos dois lacos aninhados que executam r repetições cada um, com o corpo do laco interno com complexidade o(1). Assim, a complexidade total é n.nO(1)=O(n2)
i 1 2 3 n
A linha 1 isoladamente tem complexidade
)
A linha 4 isoladamente tem complexidade
)
A Quantidade de vezes que a linha 4 é executada depende da quantidade de vezes que o laço
da linha 3-4 é executada. Para tal laço, seu conteudo é executado j vezesm conj=1..i
O laço das linhas 3-4 é dependente do laço das linhas 2-4 que é executado n vezes c/ assumindo os valores de 1..n
Logo a quantidade de vezes que a linha 4 é executada é dada por:
T(n) =

T(n) =
%7D%7B2%7D)
T(n) =
Logo a complexidade é proposrcional a

, assim
T(n) =

Demonstração pela definição assintótica:
%20%3D%5Cfrac%7B1%7D%7B2%7D%5Ccdot%20n%5E%7B2%7D%20%2B%20%5Cfrac%7B1%7D%7B2%7D%5Ccdot%20%20n%20%0A)
;
%20%3D%20%5CTheta%20(n%5E2)%20)
?
Que é uma constante diferente de O logo,
sum=0
)
Considerando que n seja uma potencia de 2
for(j=1; j<=n; j++) |
)
sum ++; |
)
|
A linha 4 isoladamente é
)
pelo laço das linhas 3-4 a linha 4 é executada N vezes. com as linhas 3-4 são n O(1) = O(n)
As linhas 3-4 são executadas uma quantidade de vezes depende do laço das linhas 2-4 onde tem-se
Iteração 1 2 3 4 …. n
K 1 2 4 8 ….. n
2p0 2p1 2p2 2p3 ……
Assim p/ saber quantas vezes seu conteudo é executado e necessario saber quantos valores diferente k assume até n(inclusive)
Supondo um índice i p/cada iteracao, dado pelo valor do expoente k em base 2, da forma
Para saber o valor de r na última iteracao, tem-se
E p/ saber o valor de i na última iteração tem-se
Assim, o trecho 2-4 é executado
sum = 0;