Notas de Aula (Google Docs)
Archive for the 'Análise Alg. 1218/32' Category
Page 3 of 3
Exercícios: Indução
1. Demonstrar por inducao matematica que
2. Demonstrar por inducao matematica que
, para
——————————————————————————
Análise de fragmentos de código
A
sum = =
for (i=1; i<=m; i++) |
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)
B
SUM = 0;
for (i=1; c<=n; i++)
for (j=1; i<=i; j++)
sum++;
i 1 2 3 n
1..1 1..2 1..3 1..n
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) =
T(n) =
Logo a complexidade é proposrcional a , assim
T(n) =
Demonstração pela definição assintótica:
; ?
Que é uma constante diferente de O logo,
C
sum=0 Considerando que n seja uma potencia de 2
for (k=1; k<=n; k*=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
logo logo
E p/ saber o valor de i na última iteração tem-se
Assim, o trecho 2-4 é executado
resultando em
D
sum = 0;
for (k=1; k<=n; k*=2);
for (j=1; j<=k; j++);
sum++;
AULA 04 – 23/03/2010
Análise de algoritmos normalmente é dividida em três casos:
- Pior Caso
- Melhor Caso
- Caso Médio
Tópicos de Aula:
Requisitos mínimos para análise de algoritmos:
- Logaritmos
- Fatoriais
- Série Aritmética
- Série Geométrica
- Função Matemática (Caso Base, Hipótese)
Downloads: Slide Matematica Computacional (EST) [ppt]
AVISO: O Professor está refazendo a chamada oralmente no fim da aula e marcando falta para os que não permaneceram. Fiquem até o final da aula para garantir presença.
Tópicos da Aula:
Tipicas taxas de crescimento
Obs: Os links são exemplos de materiais encontrados e sugeridos pelo blog admin.
Ler Cormem, Thomas H.
Ler Cormem, Thomas H.
Professor Mauro Henrique Mulati
www.din.uem.br/~mhmulati
mhmulati@din.uem.br
mhmulati@gmail.com
Bibliografia:
Cormem, Thomas H.
Algorítmos: Teoria e Prática
2ª Ed. Rio de Janeiro: Editora Campus
Elievier, 2002.
Execícios 08/03/10
1) Efetuar o somatório de todos os casos de INSERTION-SORT
* Melhor Caso
* Pior Caso
* Médio Caso
Obs: exemplo: T(n)=(C1+C2+C3+C4+C5+C6+C7).n – (C2+C3+C4+C7)
T(n)=an+b “Para constantes a e b que dependem dos C i
2) Análise da eficiência de tempo para o algoritmo BUBBLE-SORT