complexidade assintótica - usp · 2016. 8. 24. · tempo de execução do algoritmo = soma dos...
TRANSCRIPT
![Page 1: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/1.jpg)
11SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1SISTEMAS DE
INFORMAÇÃO1SISTEMAS DE
INFORMAÇÃO11 1SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO
Complexidade Assintótica
Professores:
Norton T. Roman
Fátima L. S. Nunes
![Page 2: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/2.jpg)
22SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2SISTEMAS DE
INFORMAÇÃO2SISTEMAS DE
INFORMAÇÃO22 2SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO
Vamos lembrar dos algoritmos de ordenação
Quais vocês já conhecem?
![Page 3: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/3.jpg)
33SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3SISTEMAS DE
INFORMAÇÃO3SISTEMAS DE
INFORMAÇÃO33 3SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO
Vamos lembrar dos algoritmos de ordenação
Quais vocês já conhecem? Seleção (Selection Sort) Inserção (Insertion Sort) Bolha (Bubble Sort)
![Page 4: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/4.jpg)
44SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4SISTEMAS DE
INFORMAÇÃO4SISTEMAS DE
INFORMAÇÃO44 4SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO
Vamos lembrar dos algoritmos de ordenação
Quais vocês já conhecem? Seleção (Selection Sort) Inserção (Insertion Sort) Bolha (Bubble Sort)
Qual é o melhor ???
![Page 5: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/5.jpg)
55SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5SISTEMAS DE
INFORMAÇÃO5SISTEMAS DE
INFORMAÇÃO55 5SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO
Vamos lembrar dos algoritmos de ordenação
Quais vocês já conhecem? Seleção (Selection Sort) Inserção (Insertion Sort) Bolha (Bubble Sort)
Qual é o melhor ???
![Page 6: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/6.jpg)
66SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6SISTEMAS DE
INFORMAÇÃO6SISTEMAS DE
INFORMAÇÃO66 6SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO
Vamos lembrar dos algoritmos de ordenação
Inserção Bolhavoid insercaoDireta(int [] numeros)
{ for (int ivet=1; ivet < numeros.length; ivet++) { int numaInserir = numeros[ivet]; int isubv = ivet; while ((isubv > 0) && (numeros [isubv -1] > numoAInserir)) { numeros[isubv] = numeros[isubv - 1]; isubv--; } numeros[isubv] = numAInserir; } }
void bolha(int [] numeros) { for (ivet = numeros.length - 1; ivet > 0; ivet--) {
for (isubv = 0; isubv < ivet; isubv++)
if (numeros[isubv ] > numeros[isubv+1]) { temp = numeros[isubv]; numeros [isubv] = numeros [isubv+1]; numeros [isubv+1] = temp; } } }
![Page 7: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/7.jpg)
77SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7SISTEMAS DE
INFORMAÇÃO7SISTEMAS DE
INFORMAÇÃO77 7SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO
Vamos lembrar dos algoritmos de ordenação
Melhor em quê? tempo memória dificuldade
![Page 8: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/8.jpg)
88SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO8SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO8SISTEMAS DE
INFORMAÇÃO8SISTEMAS DE
INFORMAÇÃO88 8SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO8SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO8SISTEMAS DE
INFORMAÇÃO88SISTEMAS DE
INFORMAÇÃO
Recordando...
Algoritmo
O que é?
![Page 9: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/9.jpg)
99SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO9SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO9SISTEMAS DE
INFORMAÇÃO9SISTEMAS DE
INFORMAÇÃO99 9SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO9SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO9SISTEMAS DE
INFORMAÇÃO99SISTEMAS DE
INFORMAÇÃO
Recordando...
Algoritmo
Informalmente (Cormen et al., 2002):Qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores com saída.Sequência de passos computacionais que transformam a entrada na saída.
![Page 10: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/10.jpg)
1010SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO10SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO10SISTEMAS DE
INFORMAÇÃO10SISTEMAS DE
INFORMAÇÃO1010 10SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO10SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO10SISTEMAS DE
INFORMAÇÃO1010SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos
O que é analisar um algoritmo?
![Page 11: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/11.jpg)
1111SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1111 11SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO11SISTEMAS DE
INFORMAÇÃO1111SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos
O que é analisar um algoritmo? Prever os recursos de que o algoritmo
necessitará. Quais recursos?
![Page 12: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/12.jpg)
1212SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO12SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO12SISTEMAS DE
INFORMAÇÃO12SISTEMAS DE
INFORMAÇÃO1212 12SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO12SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO12SISTEMAS DE
INFORMAÇÃO1212SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos O que é analisar um algoritmo?
Prever os recursos de que o algoritmo necessitará.
Quais recursos? memória, largura de banda de comunicação, hardware principal: tempo de computação
Análise de algoritmos: permite escolher o algoritmo mais eficiente dentre
um conjunto de candidatos para resolver um problema
![Page 13: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/13.jpg)
1313SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO13SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO13SISTEMAS DE
INFORMAÇÃO13SISTEMAS DE
INFORMAÇÃO1313 13SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO13SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO13SISTEMAS DE
INFORMAÇÃO1313SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos
Em geral, tempo de duração de um algoritmo cresce com o tamanho da entrada
É usual descrever o tempo de execução de um programa como uma função do tamanho de sua entrada.
![Page 14: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/14.jpg)
1414SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO14SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO14SISTEMAS DE
INFORMAÇÃO14SISTEMAS DE
INFORMAÇÃO1414 14SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO14SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO14SISTEMAS DE
INFORMAÇÃO1414SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos Em geral, tempo de duração de um algoritmo cresce
com o tamanho da entrada Tamanho de entrada (n):
depende do problema estudado maioria dos problemas: número de itens de entrada exemplo: ordenação (quantidade de elementos do arranjo)
Tempo de execução: quantidade de operações primitivas ou etapas executadas para uma
determinada entrada vamos considerar que cada linha i leva um tempo constante ci
![Page 15: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/15.jpg)
1515SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO15SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO15SISTEMAS DE
INFORMAÇÃO15SISTEMAS DE
INFORMAÇÃO1515 15SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO15SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO15SISTEMAS DE
INFORMAÇÃO1515SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos Função de custo de um algoritmo
representa o custo de tempo de cada instrução e o número de vezes que cada instrução é executada
Exemplo: insertion-sort(A) (entrada: array A que tem tamanho n)
custo vezes
c1 n
c2 n-1
0 n-1
c4 n-1
c5
c6
c7
c8 n-1
∑j=2
n
t j
∑j=2
n
( t j−1 )
∑j=2
n
( t j−1 )
1 para j = 2 até tamanho[A] faça
2 chave = A[j]
3 // ordenando elementos à esquerda
4 i = j – 1
5 enquanto i > 0 e A[i] > chave faça
6 A[i+1] = A[i]
7 i = i -1
8 fim enquanto
9 A[i+1] = chave
10 fim para
![Page 16: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/16.jpg)
1616SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO16SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO16SISTEMAS DE
INFORMAÇÃO16SISTEMAS DE
INFORMAÇÃO1616 16SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO16SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO16SISTEMAS DE
INFORMAÇÃO1616SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos Tempo de execução do algoritmo = soma dos tempos de execução para cada
instrução
T(n)=c1n + c2(n-1) + c4(n-1) + c5 + c6 + c7 + c8 (n-1)
1 para j = 2 até tamanho[A] faça
2 chave = A[j]
3 // ordenando elementos à esquerda
4 i = j – 1
5 enquanto i > 0 e A[i] > chave faça
6 A[i+1] = A[i]
7 i = i -1
8 fim enquanto
9 A[i+1] = chave
10 fim para
custo vezes
c1 n
c2 n-1
0 n-1
c4 n-1
c5
c6
c7
c8 n-1
∑j=2
n
t j
∑j=2
n
( t j−1 )
∑j=2
n
( t j−1 )
∑j=2
n
t j ∑j=2
n
( t j−1 ) ∑j=2
n
( t j−1 )
![Page 17: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/17.jpg)
1717SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO17SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO17SISTEMAS DE
INFORMAÇÃO17SISTEMAS DE
INFORMAÇÃO1717 17SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO17SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO17SISTEMAS DE
INFORMAÇÃO1717SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos Tempo de execução do algoritmo = soma dos tempos de execução para cada
instrução
T(n)=c1n + c2(n-1) + c4(n-1) + c5 + c6 + c7 + c8 (n-1)
Melhor caso: vetor já ordenado (A[i] ≤ chave na linha 5 tj=1 para j=2,3,...,n)
T(n)=c1n + c2(n-1) + c4(n-1) + c5(n-1) + c8(n-1) =( c1+ c2 + c4 + c5 + c8)n - (c2 + c4 + c5 + c8)
Tempo de execução, neste caso, pode ser expresso como an + b para constantes a e b que dependem dos custos de instrução ci função linear de n
∑j=2
n
t j ∑j=2
n
( t j−1 ) ∑j=2
n
( t j−1 )
![Page 18: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/18.jpg)
1818SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO18SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO18SISTEMAS DE
INFORMAÇÃO18SISTEMAS DE
INFORMAÇÃO1818 18SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO18SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO18SISTEMAS DE
INFORMAÇÃO1818SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos Tempo de execução do algoritmo = soma dos tempos de execução para cada
instrução
T(n)=c1n + c2(n-1) + c4(n-1) + c5 + c6 + c7 + c8 (n-1)
Pior caso: vetor em ordem inversa (deve comparar cada elemento A[j] com cada elemento do subarranjo ordenado A[j... j-1] tj=j para j=2,3,...,n)
Tempo de execução, neste caso, pode ser expresso como an2 + bn + c para constantes a, b e c que dependem dos custos de instrução ci função quadrática de n
∑j=2
n
t j ∑j=2
n
( t j−1 ) ∑j=2
n
( t j−1 )
T (n )=c1 n+c2( n−1 )+c 4( n−1 )+c5
n(n−1 )2
−1+c6
n(n−1)2
+c7
n(n−1 )2
+c8 (n−1 )=
(c5
2+
c6
2+
c7
2 )n2+(c1 +c2+c4+c5
2−
c6
2−
c7
2+c8 )n−(c2+c4 +c5 +c8 )
∑j=2
n
( j−1 )=n(n−1 )
2∑j=2
n
( j)=n (n−1)
2−1
![Page 19: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/19.jpg)
1919SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO19SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO19SISTEMAS DE
INFORMAÇÃO19SISTEMAS DE
INFORMAÇÃO1919 19SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO19SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO19SISTEMAS DE
INFORMAÇÃO1919SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos Em geral:
tempo de execução de um algoritmo é fixo para uma determinada entrada
analisamos apenas o pior caso dos algoritmos: é um limite superior sobre o tempo de execução de qualquer entrada; pior caso ocorre com muita frequência para alguns algoritmos. Exemplo:
registro inexistente em um banco de dados; muitas vezes, o caso médio é quase tão ruim quanto o pior caso
![Page 20: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/20.jpg)
2020SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO20SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO20SISTEMAS DE
INFORMAÇÃO20SISTEMAS DE
INFORMAÇÃO2020 20SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO20SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO20SISTEMAS DE
INFORMAÇÃO2020SISTEMAS DE
INFORMAÇÃO
Análise de Algoritmos Nas análises anteriores, foram feitas algumas simplificações em relação às
constantes, chegando à função linear e à função quadrática
Taxa de crescimento ou ordem de crescimento:
considera apenas o termo inicial de uma fórmula (exemplo: an2), pois os termos de mais baixa ordem são relativamente insignificantes para grandes valores de n;
ignora o coeficiente constante do termo inicial também por ser menos significativo para grandes entradas;
Portanto, dizemos que: a ordenação por inserção, por exemplo, tem um tempo de execução do pior caso igual a (n2) (lê-se “theta de n ao quadrado”);
Em geral, consideramos um algoritmo mais eficiente que outro se o tempo de execução do seu pior caso apresenta uma ordem de crescimento mais baixa.
![Page 21: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/21.jpg)
2121SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO21SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO21SISTEMAS DE
INFORMAÇÃO21SISTEMAS DE
INFORMAÇÃO2121 21SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO21SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO21SISTEMAS DE
INFORMAÇÃO2121SISTEMAS DE
INFORMAÇÃO
Exercício
Criar o gráfico do insertion sort, medindo o tempo médio, melhor e pior caso.
![Page 22: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/22.jpg)
2222SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2222 22SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO22SISTEMAS DE
INFORMAÇÃO2222SISTEMAS DE
INFORMAÇÃO
Exercício
Criar o gráfico do insertion sort, medindo o tempo médio, melhor e pior caso.
![Page 23: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/23.jpg)
2323SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO23SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO23SISTEMAS DE
INFORMAÇÃO23SISTEMAS DE
INFORMAÇÃO2323 23SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO23SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO23SISTEMAS DE
INFORMAÇÃO2323SISTEMAS DE
INFORMAÇÃO
Complexidade? Assintótica?
Complexidade
(cs) sf (complexo+dade) Qualidade do que é complexo. Complexo
(cs) adj (lat complexu) 1 Que abrange ou encerra muitos elementos ou partes. 2 Que pode ser considerado sob vários pontos de vista. 3 Complicado.
![Page 24: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/24.jpg)
2424SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO24SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO24SISTEMAS DE
INFORMAÇÃO24SISTEMAS DE
INFORMAÇÃO2424 24SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO24SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO24SISTEMAS DE
INFORMAÇÃO2424SISTEMAS DE
INFORMAÇÃO
Complexidade? Assintótica?
Assintótico
adj (assíntota+ico2) Geom 1 Pertencente ou relativo à assíntota. 2 Qualificativo do espaço compreendido entre uma curva e a sua assíntota. 3 Diz-se da direção paralela de uma assíntota. Var: assimptótico.Assíntota
sf (gr asýmptotos) Geom Linha reta que se aproxima indefinidamente de uma curva sem nunca poder tocá-la. Var: assímptota.
![Page 25: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/25.jpg)
2525SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO25SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO25SISTEMAS DE
INFORMAÇÃO25SISTEMAS DE
INFORMAÇÃO2525 25SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO25SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO25SISTEMAS DE
INFORMAÇÃO2525SISTEMAS DE
INFORMAÇÃO
Complexidade? Assintótica?
Assíntota
sf (gr asýmptotos) Geom Linha reta que se aproxima indefinidamente de uma curva sem nunca poder tocá-la. Var: assímptota.
A função f(x)=1/x tem como assíntotas os eixos coordenados.
(Fonte: http://pt.wikipedia.org/wiki/Assímptota)
![Page 26: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/26.jpg)
2626SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO26SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO26SISTEMAS DE
INFORMAÇÃO26SISTEMAS DE
INFORMAÇÃO2626 26SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO26SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO26SISTEMAS DE
INFORMAÇÃO2626SISTEMAS DE
INFORMAÇÃO
Complexidade assintótica
● Em ciência da computação e matemática aplicada, particularmente a análise de algoritmos, análise real, e engenharia, análise assintótica é um método de descrever o comportamento de limites. Exemplos incluem o desempenho de algoritmos quando aplicados a um volume muito grande de dados de entrada, ou o comportamento de sistemas físicos quando eles são muito grandes.
![Page 27: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/27.jpg)
2727SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO27SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO27SISTEMAS DE
INFORMAÇÃO27SISTEMAS DE
INFORMAÇÃO2727 27SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO27SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO27SISTEMAS DE
INFORMAÇÃO2727SISTEMAS DE
INFORMAÇÃO
Crescimento Assintótico de Funções
Escolha do algoritmo não é um problema crítico quando n é pequeno. O problema é quando n cresce.
Por isso, é usual analisar o comportamento das funções de custo quando n é bastante grande: analisa-se o comportamento assintótico das funções de
custo; representa o limite do comportamento da função de custo
quando n cresce.
![Page 28: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/28.jpg)
2828SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO28SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO28SISTEMAS DE
INFORMAÇÃO28SISTEMAS DE
INFORMAÇÃO2828 28SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO28SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO28SISTEMAS DE
INFORMAÇÃO2828SISTEMAS DE
INFORMAÇÃO
Crescimento Assintótico de Funções
Eficiência assintótica dos algoritmos: estuda a maneira como o tempo de execução de um
algoritmo aumenta com o tamanho da entrada no limite, à medida que o tamanho da entrada aumenta indefinidamente (sem limitação)
em geral, um algoritmo que é assintoticamente mais eficiente será a melhor escolha para toda as entradas, exceto as pequenas.
![Page 29: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/29.jpg)
2929SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO29SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO29SISTEMAS DE
INFORMAÇÃO29SISTEMAS DE
INFORMAÇÃO2929 29SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO29SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO29SISTEMAS DE
INFORMAÇÃO2929SISTEMAS DE
INFORMAÇÃO
Vamos ordenar
Quais funções “crescem mais”?
f(n) = n
f(n) = nlogn
f(n) = lognf(n) = n²
f(n) = 100n² + 15 n
f(n) = 2n
![Page 30: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/30.jpg)
3030SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO30SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO30SISTEMAS DE
INFORMAÇÃO30SISTEMAS DE
INFORMAÇÃO3030 30SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO30SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO30SISTEMAS DE
INFORMAÇÃO3030SISTEMAS DE
INFORMAÇÃO
Vamos ordenar
![Page 31: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/31.jpg)
3131SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO31SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO31SISTEMAS DE
INFORMAÇÃO31SISTEMAS DE
INFORMAÇÃO3131 31SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO31SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO31SISTEMAS DE
INFORMAÇÃO3131SISTEMAS DE
INFORMAÇÃO
Vamos ordenar
![Page 32: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/32.jpg)
3232SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO32SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO32SISTEMAS DE
INFORMAÇÃO32SISTEMAS DE
INFORMAÇÃO3232 32SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO32SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO32SISTEMAS DE
INFORMAÇÃO3232SISTEMAS DE
INFORMAÇÃO
Vamos ordenar
![Page 33: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/33.jpg)
3333SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3333 33SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO33SISTEMAS DE
INFORMAÇÃO3333SISTEMAS DE
INFORMAÇÃO
Vamos ordenar
![Page 34: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/34.jpg)
3434SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO34SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO34SISTEMAS DE
INFORMAÇÃO34SISTEMAS DE
INFORMAÇÃO3434 34SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO34SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO34SISTEMAS DE
INFORMAÇÃO3434SISTEMAS DE
INFORMAÇÃO
Vamos ordenar
![Page 35: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/35.jpg)
3535SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO35SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO35SISTEMAS DE
INFORMAÇÃO35SISTEMAS DE
INFORMAÇÃO3535 35SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO35SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO35SISTEMAS DE
INFORMAÇÃO3535SISTEMAS DE
INFORMAÇÃO
Vamos ordenar
![Page 36: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/36.jpg)
3636SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO36SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO36SISTEMAS DE
INFORMAÇÃO36SISTEMAS DE
INFORMAÇÃO3636 36SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO36SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO36SISTEMAS DE
INFORMAÇÃO3636SISTEMAS DE
INFORMAÇÃO
Comportamento Assintótico
Vamos comparar funções assintoticamente, ou seja, para valores grandes, desprezando constantes multiplicativas e termos de menor ordem.
![Page 37: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/37.jpg)
3737SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO37SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO37SISTEMAS DE
INFORMAÇÃO37SISTEMAS DE
INFORMAÇÃO3737 37SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO37SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO37SISTEMAS DE
INFORMAÇÃO3737SISTEMAS DE
INFORMAÇÃO
Comportamento Assintótico Supondo uma máquina que execute 1 milhão (106)
de operações por segundon
![Page 38: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/38.jpg)
3838SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO38SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO38SISTEMAS DE
INFORMAÇÃO38SISTEMAS DE
INFORMAÇÃO3838 38SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO38SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO38SISTEMAS DE
INFORMAÇÃO3838SISTEMAS DE
INFORMAÇÃO
Comportamento Assintótico Influência do aumento de velocidade dos computadores no
tamanho do problema, considerando a complexidade assintótica Exemplo: um aumento de 1000 vezes na velocidade do computador
resolve, considerando o mesmo tempo, um problema dez vezes maior de complexidade (n3) e um problema 1000 vezes maior se a complexidade for (n).
![Page 39: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/39.jpg)
3939SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO39SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO39SISTEMAS DE
INFORMAÇÃO39SISTEMAS DE
INFORMAÇÃO3939 39SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO39SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO39SISTEMAS DE
INFORMAÇÃO3939SISTEMAS DE
INFORMAÇÃO
Comportamento Assintótico – Resumindo...
Se f(n) é a função de complexidade de um algoritmo A O comportamento assintótico de f (n) representa o limite do
comportamento do custo (complexidade) de A quando n cresce.
A análise de um algoritmo (função de complexidade) Geralmente considera apenas algumas operações elementares ou
mesmo uma operação elementar (e.g., o número de comparações).
A complexidade assintótica relata crescimento assintótico das operações elementares.
![Page 40: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/40.jpg)
4040SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO40SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO40SISTEMAS DE
INFORMAÇÃO40SISTEMAS DE
INFORMAÇÃO4040 40SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO40SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO40SISTEMAS DE
INFORMAÇÃO4040SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico Definição:
Uma função g(n) domina assintoticamente outra função f(n) se existem duas constantes positivas c e m tais que, para n ≥ m, tem-se |f(n)| ≤ c . |g(n)|.
m
n
![Page 41: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/41.jpg)
4141SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO41SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO41SISTEMAS DE
INFORMAÇÃO41SISTEMAS DE
INFORMAÇÃO4141 41SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO41SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO41SISTEMAS DE
INFORMAÇÃO4141SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico Definição:
Uma função g(n) domina assintoticamente outra função f(n) se existem duas constantes positivas c e m tais que, para n ≥ m, tem-se |f(n)| ≤ c . |g(n)|.
m
n
Exemplo:
g(n) = n e f (n) = n2
Alguém domina alguém? ???
![Page 42: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/42.jpg)
4242SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO42SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO42SISTEMAS DE
INFORMAÇÃO42SISTEMAS DE
INFORMAÇÃO4242 42SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO42SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO42SISTEMAS DE
INFORMAÇÃO4242SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico Definição:
Uma função g(n) domina assintoticamente outra função f(n) se existem duas constantes positivas c e m tais que, para n ≥ m, tem-se |f(n)| ≤ c . |g(n)|.
m
n
Exemplo:
g(n) = n e f (n) = n2
Alguém domina alguém?
∣n∣ ≤ ∣n2∣ para todo n ∈ N
• Para c = 1 e m = 0 ⇒ g(n) ≤ f(n)∣ ∣ ∣ ∣• Portanto, f (n) domina assintoticamente g(n).
![Page 43: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/43.jpg)
4343SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO43SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO43SISTEMAS DE
INFORMAÇÃO43SISTEMAS DE
INFORMAÇÃO4343 43SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO43SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO43SISTEMAS DE
INFORMAÇÃO4343SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = n e f (n) = -n2
Alguém domina alguém? ???
![Page 44: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/44.jpg)
4444SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4444 44SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO44SISTEMAS DE
INFORMAÇÃO4444SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = n e f (n) = -n2
Alguém domina alguém? |n| ≤ ∣-n2∣ para todo n N.∈
Por ser módulo, o sinal não importa
Para c = 1 e m = 0 ⇒ ∣g(n)∣ ≤ ∣f(n)∣.
Portanto, f (n) domina assintoticamente g(n).
![Page 45: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/45.jpg)
4545SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO45SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO45SISTEMAS DE
INFORMAÇÃO45SISTEMAS DE
INFORMAÇÃO4545 45SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO45SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO45SISTEMAS DE
INFORMAÇÃO4545SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = (n+1)2 e f (n) = n2
Alguém domina alguém? ???
![Page 46: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/46.jpg)
4646SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO46SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO46SISTEMAS DE
INFORMAÇÃO46SISTEMAS DE
INFORMAÇÃO4646 46SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO46SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO46SISTEMAS DE
INFORMAÇÃO4646SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = (n+1)2 e f (n) = n2
Alguém domina alguém? Vamos colocar em um
gráfico(n+1)2
n2
![Page 47: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/47.jpg)
4747SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO47SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO47SISTEMAS DE
INFORMAÇÃO47SISTEMAS DE
INFORMAÇÃO4747 47SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO47SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO47SISTEMAS DE
INFORMAÇÃO4747SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = (n+1)2 e f (n) = n2
Alguém domina alguém? Vamos colocar em um
gráfico ∣n2∣ ≤ ∣(n+1)2∣, para n ≥ 0 g(n) domina f(n)
(n+1)2
n2
![Page 48: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/48.jpg)
4848SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO48SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO48SISTEMAS DE
INFORMAÇÃO48SISTEMAS DE
INFORMAÇÃO4848 48SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO48SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO48SISTEMAS DE
INFORMAÇÃO4848SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = (n+1)2 e f (n) = n2
Alguém domina alguém? Será somente isso? Não há como f(n) dominar
g(n)? ???
(n+1)2
n2
![Page 49: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/49.jpg)
4949SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO49SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO49SISTEMAS DE
INFORMAÇÃO49SISTEMAS DE
INFORMAÇÃO4949 49SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO49SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO49SISTEMAS DE
INFORMAÇÃO4949SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = (n+1)2 e f (n) = n2
Alguém domina alguém? Não há como f(n) dominar g(n)?
Lembre que a definição envolve também uma constante. Suponha que queremos g(n) ≤ cf(n) Então ∣(n+1)2∣ ≤ ∣cn2∣
Mas, para isso, basta que ∣(n+1)2∣ ≤ ∣(√c n)2∣, ou ∣n+1∣ ≤ ∣√c n∣
Se √c = 2, ou seja, c=4, isso é verdade
(n+1)2
n2
![Page 50: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/50.jpg)
5050SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO50SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO50SISTEMAS DE
INFORMAÇÃO50SISTEMAS DE
INFORMAÇÃO5050 50SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO50SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO50SISTEMAS DE
INFORMAÇÃO5050SISTEMAS DE
INFORMAÇÃO
Relacionamento Assintótico
g(n) = (n+1)2 e f (n) = n2
Alguém domina alguém? |(n+1)2 |≤ ∣4n2∣, para n ≥ 1 f(n) domina g(n), para n ≥ 1
Nesse caso, dizemos que f(n) e g(n) dominam assintoticamente uma a outra.
(n+1)2
4n2
![Page 51: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/51.jpg)
5151SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO51SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO51SISTEMAS DE
INFORMAÇÃO51SISTEMAS DE
INFORMAÇÃO5151 51SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO51SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO51SISTEMAS DE
INFORMAÇÃO5151SISTEMAS DE
INFORMAÇÃO
Notação O
Knuth(1971) * criou a notação O (lê-se "O grande") para expressar que g(n) domina assintoticamente f(n) Escreve-se f(n) = O(g(n)) e lê-se: "f(n) é da ordem no máximo
g(n)".
Para que serve isto para o Bacharel em Sistemas de Informação?
*Knuth, D.E. (1971) "Mathematical Analysis of Algorithms". Proceedings IFIP Congress 71, vol. 1, North Holland, Amsterdam, Holanda, 135-143.
![Page 52: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/52.jpg)
5252SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO52SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO52SISTEMAS DE
INFORMAÇÃO52SISTEMAS DE
INFORMAÇÃO5252 52SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO52SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO52SISTEMAS DE
INFORMAÇÃO5252SISTEMAS DE
INFORMAÇÃO
Notação O Knuth(1971) * criou a notação O (lê-se "O grande") para
expressar que g(n) domina assintoticamente f(n) Escreve-se f(n) = O(g(n)) e lê-se: "f(n) é da ordem no máximo
g(n)".
Para que serve isto ? Muitas vezes calcular a função de complexidade g(n) de um
algoritmo A é complicado. É mais fácil determinar que f (n) é O(g(n)), isto é, que
assintoticamente f(n) cresce no máximo como g(n).
*Knuth, D.E. (1971) "Mathematical Analysis of Algorithms". Proceedings IFIP Congress 71, vol. 1, North Holland, Amsterdam, Holanda, 135-143.
![Page 53: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/53.jpg)
5353SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO53SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO53SISTEMAS DE
INFORMAÇÃO53SISTEMAS DE
INFORMAÇÃO5353 53SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO53SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO53SISTEMAS DE
INFORMAÇÃO5353SISTEMAS DE
INFORMAÇÃO
Notação O Definição:
O(g(n)) = {f(n): existem constantes positivas c e n0 tais que 0 ≤ f(n) ≤ cg(n), para todo n ≥ n0}
Informalmente, dizemos que, se f(n) ∈ O(g(n)), então f(n) cresce no máximo tão rapidamente quanto g(n).
n0
![Page 54: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/54.jpg)
5454SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO54SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO54SISTEMAS DE
INFORMAÇÃO54SISTEMAS DE
INFORMAÇÃO5454 54SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO54SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO54SISTEMAS DE
INFORMAÇÃO5454SISTEMAS DE
INFORMAÇÃO
Notação O
Definição: O(g(n)) = {f(n): existem constantes positivas c e n0 tais
que 0 ≤ f(n) ≤ cg(n), para todo n ≥ n0}
?
???
32
n2−2 n∈O(n2)
![Page 55: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/55.jpg)
5555SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5555 55SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO55SISTEMAS DE
INFORMAÇÃO5555SISTEMAS DE
INFORMAÇÃO
Notação O
Definição: O(g(n)) = {f(n): existem constantes positivas c e n0 tais que
0 ≤ f(n) ≤ cg(n), para todo n ≥ n0}
?
Fazendo c = 3/2, teremos , para n0 ≥ 2
Outras constantes podem existir, mas o que importa é que existe alguma escolha para as constantes
32
n2−2 n∈O(n2)
32
n2−2n≤32
n2
![Page 56: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/56.jpg)
5656SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO56SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO56SISTEMAS DE
INFORMAÇÃO56SISTEMAS DE
INFORMAÇÃO5656 56SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO56SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO56SISTEMAS DE
INFORMAÇÃO5656SISTEMAS DE
INFORMAÇÃO
Notação O
Usamos a notação O para dar um limite superior sobre uma função, dentro de um fator constante.
n0
![Page 57: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/57.jpg)
5757SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO57SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO57SISTEMAS DE
INFORMAÇÃO57SISTEMAS DE
INFORMAÇÃO5757 57SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO57SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO57SISTEMAS DE
INFORMAÇÃO5757SISTEMAS DE
INFORMAÇÃO
Notação O Com a notação O podemos descrever frequentemente o
tempo de execução de um algoritmo apenas inspecionando a estrutura global do algoritmo. Exemplo:
estrutura de laço duplamente aninhado no algoritmo insertion-sort (visto anteriormente) produz um limite superior O(n2) no pior caso:
custo do laço interno é limitado na parte superior por O(1) (constante) índices i e j são no máximo n laço interno é executado no máximo uma vez para cada um dos n2 pares de
valores correspondentes a i e j
![Page 58: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/58.jpg)
5858SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO58SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO58SISTEMAS DE
INFORMAÇÃO58SISTEMAS DE
INFORMAÇÃO5858 58SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO58SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO58SISTEMAS DE
INFORMAÇÃO5858SISTEMAS DE
INFORMAÇÃO
Notação O – o pior caso
Como a notação O dá um limite superior, quando empregado ao pior caso...
![Page 59: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/59.jpg)
5959SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO59SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO59SISTEMAS DE
INFORMAÇÃO59SISTEMAS DE
INFORMAÇÃO5959 59SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO59SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO59SISTEMAS DE
INFORMAÇÃO5959SISTEMAS DE
INFORMAÇÃO
Notação O – o pior caso
Como a notação O dá um limite superior, quando empregado ao pior caso... indica que esse limite vale para qualquer instância
daquele algoritmo.
![Page 60: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/60.jpg)
6060SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO60SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO60SISTEMAS DE
INFORMAÇÃO60SISTEMAS DE
INFORMAÇÃO6060 60SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO60SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO60SISTEMAS DE
INFORMAÇÃO6060SISTEMAS DE
INFORMAÇÃO
Notação O – o pior caso
Como a notação O dá um limite superior, quando empregado ao pior caso... indica que esse limite vale para qualquer instância
daquele algoritmo.
Assim, o limite O(n2) do pior caso do insertion sort também se aplica a qualquer entrada
Veremos que o mesmo não é verdadeiro para a notação
![Page 61: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/61.jpg)
6161SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO61SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO61SISTEMAS DE
INFORMAÇÃO61SISTEMAS DE
INFORMAÇÃO6161 61SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO61SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO61SISTEMAS DE
INFORMAÇÃO6161SISTEMAS DE
INFORMAÇÃO
Operações com a notação O
![Page 62: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/62.jpg)
6262SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO62SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO62SISTEMAS DE
INFORMAÇÃO62SISTEMAS DE
INFORMAÇÃO6262 62SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO62SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO62SISTEMAS DE
INFORMAÇÃO6262SISTEMAS DE
INFORMAÇÃO
Operações com a notação O
A regra O(f(n)) + O(g(n)) = O(max(f(n),g(n))) pode ser usada para calcular o tempo de execução de uma sequência de trechos de um programa Suponha 3 trechos: O(n), O(n2) e O(nlogn) Qual o tempo de execução do algoritmo como um todo?
???
![Page 63: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/63.jpg)
6363SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO63SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO63SISTEMAS DE
INFORMAÇÃO63SISTEMAS DE
INFORMAÇÃO6363 63SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO63SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO63SISTEMAS DE
INFORMAÇÃO6363SISTEMAS DE
INFORMAÇÃO
Operações com a notação O
A regra O(f(n)) + O(g(n)) = O(max(f(n),g(n))) pode ser usada para calcular o tempo de execução de uma sequência de trechos de um programa Suponha 3 trechos: O(n), O(n2) e O(nlogn) Qual o tempo de execução do algoritmo como um todo?
Lembre-se que o tempo de execução é a soma dos tempos de cada trecho
O(n) + O(n2) + O(nlogn) = max(O(n), O(n2), O(nlogn)) = O(n2)
![Page 64: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/64.jpg)
6464SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO64SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO64SISTEMAS DE
INFORMAÇÃO64SISTEMAS DE
INFORMAÇÃO6464 64SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO64SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO64SISTEMAS DE
INFORMAÇÃO6464SISTEMAS DE
INFORMAÇÃO
Notação
Definição: (g(n)) = {f(n): existem constantes positivas c e n0 tais
que 0 ≤ cg(n) ≤ f(n), para todo n ≥ n0}
Informalmente, dizemos que, se f(n) ∈ (g(n)), então f(n) cresce no mínimo tão lentamente quanto g(n). Note que se f(n) ∈ O(g(n))
define um limite superiorpara f(n), (g(n)) defineum limite inferior
![Page 65: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/65.jpg)
6565SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO65SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO65SISTEMAS DE
INFORMAÇÃO65SISTEMAS DE
INFORMAÇÃO6565 65SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO65SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO65SISTEMAS DE
INFORMAÇÃO6565SISTEMAS DE
INFORMAÇÃO
Notação
Definição: (g(n)) = {f(n): existem constantes positivas c e n0 tais
que 0 ≤ cg(n) ≤ f(n), para todo n ≥ n0}
?
???
32
n2−2 n∈Ω( n2 )
![Page 66: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/66.jpg)
6666SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6666 66SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO66SISTEMAS DE
INFORMAÇÃO6666SISTEMAS DE
INFORMAÇÃO
Notação
Definição: (g(n)) = {f(n): existem constantes positivas c e n0 tais que
0 ≤ cg(n) ≤ f(n), para todo n ≥ n0}
?
Fazendo c = 1/2, teremos , para n0 ≥ 232
n2−2 n≥12
n2
32
n2−2 n∈Ω( n2 )
![Page 67: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/67.jpg)
6767SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO67SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO67SISTEMAS DE
INFORMAÇÃO67SISTEMAS DE
INFORMAÇÃO6767 67SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO67SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO67SISTEMAS DE
INFORMAÇÃO6767SISTEMAS DE
INFORMAÇÃO
Notação O e
3/2 n2 – 2n3/2 n2
1/2 n2
![Page 68: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/68.jpg)
6868SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO68SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO68SISTEMAS DE
INFORMAÇÃO68SISTEMAS DE
INFORMAÇÃO6868 68SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO68SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO68SISTEMAS DE
INFORMAÇÃO6868SISTEMAS DE
INFORMAÇÃO
Notação Definição:
(g(n)) = {f(n): existem constantes positivas c1, c2 e n0 tais que 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n), para todo n ≥ n0}
Informalmente, dizemos que, se f(n) ∈ (g(n)), então f(n) cresce tão rapidamente quanto g(n).
![Page 69: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/69.jpg)
6969SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO69SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO69SISTEMAS DE
INFORMAÇÃO69SISTEMAS DE
INFORMAÇÃO6969 69SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO69SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO69SISTEMAS DE
INFORMAÇÃO6969SISTEMAS DE
INFORMAÇÃO
Notação
Definição: (g(n)) = {f(n): existem constantes positivas c1, c2 e n0 tais que
0 ≤ c1g(n) ≤ f(n) ≤ c2g(n), para todo n ≥ n0}
?
???
32
n2−2n∈Θ(n2)
![Page 70: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/70.jpg)
7070SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO70SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO70SISTEMAS DE
INFORMAÇÃO70SISTEMAS DE
INFORMAÇÃO7070 70SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO70SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO70SISTEMAS DE
INFORMAÇÃO7070SISTEMAS DE
INFORMAÇÃO
Notação
Definição: (g(n)) = {f(n): existem constantes positivas c1, c2 e n0 tais
que 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n), para todo n ≥ n0}
?
Fazendo c1 = 1/2 e c2 = 3/2 teremos
para n0 ≥ 2
32
n2−2 n∈Θ(n2)
|12
n2|≤|32
n2−2n|≤|32
n2|
![Page 71: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/71.jpg)
7171SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO71SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO71SISTEMAS DE
INFORMAÇÃO71SISTEMAS DE
INFORMAÇÃO7171 71SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO71SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO71SISTEMAS DE
INFORMAÇÃO7171SISTEMAS DE
INFORMAÇÃO
Notação
Mas, já vimos que: →
→ e ...
→
Será coincidência? ???
32
n2−2n∈O(n2) |32
n2−2 n|≤|32
n2|
|12
n2|≤|32
n2−2n|32
n2−2 n∈Ω( n2 )
32
n2−2n∈Θ(n2) |12
n2|≤|32
n2−2n|≤|32
n2|
![Page 72: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/72.jpg)
7272SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO72SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO72SISTEMAS DE
INFORMAÇÃO72SISTEMAS DE
INFORMAÇÃO7272 72SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO72SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO72SISTEMAS DE
INFORMAÇÃO7272SISTEMAS DE
INFORMAÇÃO
Notação
Mas, já vimos que: →
→ e ...
→
Será coincidência? Não! Se f(n) ∈ O(g(n)) e f(n) ∈ (g(n)), então f(n) ∈ g(n))
32
n2−2n∈O(n2) |32
n2−2 n|≤|32
n2|
|12
n2|≤|32
n2−2n|32
n2−2 n∈Ω( n2 )
32
n2−2n∈Θ(n2) |12
n2|≤|32
n2−2n|≤|32
n2|
![Page 73: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/73.jpg)
7373SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO73SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO73SISTEMAS DE
INFORMAÇÃO73SISTEMAS DE
INFORMAÇÃO7373 73SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO73SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO73SISTEMAS DE
INFORMAÇÃO7373SISTEMAS DE
INFORMAÇÃO
Notação
Mas: Será coincidência?
Não! Se f(n) ∈ O(g(n)) e
f(n) ∈ (g(n)), então f(n) ∈ g(n))
![Page 74: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/74.jpg)
7474SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO74SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO74SISTEMAS DE
INFORMAÇÃO74SISTEMAS DE
INFORMAÇÃO7474 74SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO74SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO74SISTEMAS DE
INFORMAÇÃO7474SISTEMAS DE
INFORMAÇÃO
Notação – pior caso
O tempo limite de (n2) para o pior caso do insertion sort
Não implica um tempo (n2) para qualquer entrada
Por exemplo, se pegarmos o melhor caso, vemos que ele tem (n)
![Page 75: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/75.jpg)
7575SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO75SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO75SISTEMAS DE
INFORMAÇÃO75SISTEMAS DE
INFORMAÇÃO7575 75SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO75SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO75SISTEMAS DE
INFORMAÇÃO7575SISTEMAS DE
INFORMAÇÃO
Notação o
Definição: o(g(n)) = {f(n): para toda constante positiva c, existe uma
constante n0 > 0 tal que 0 ≤ f(n) < cg(n), para todo n ≥ n0}
Informalmente, dizemos que, se f(n) ∈ o(g(n)), então f(n) cresce mais lentamente que g(n). Intuitivamente, na notação o, a função f(n) tem crescimento
muito menor que g(n) quando n tende para o infinito
![Page 76: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/76.jpg)
7676SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO76SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO76SISTEMAS DE
INFORMAÇÃO76SISTEMAS DE
INFORMAÇÃO7676 76SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO76SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO76SISTEMAS DE
INFORMAÇÃO7676SISTEMAS DE
INFORMAÇÃO
Notação o
? ???
1000 n2∈o (n3
)
![Page 77: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/77.jpg)
7777SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7777 77SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO77SISTEMAS DE
INFORMAÇÃO7777SISTEMAS DE
INFORMAÇÃO
Notação o
? Para todo valor de c, um n0 que satisfaz a definição é:
1000 n2∈o (n3
)
n0=|1000
c|+1
![Page 78: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/78.jpg)
7878SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO78SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO78SISTEMAS DE
INFORMAÇÃO78SISTEMAS DE
INFORMAÇÃO7878 78SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO78SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO78SISTEMAS DE
INFORMAÇÃO7878SISTEMAS DE
INFORMAÇÃO
Notação o
Qual a diferença entre O e o? O: existem constantes positivas c e n0 tais que
0 ≤ f(n) ≤ cg(n), para todo n ≥ n0
A expressão 0 ≤ f(n) ≤ cg(n) é válida para alguma constante c>0
o: para toda constante positiva c, existe uma constante n0 > 0 tal que 0 ≤ f(n) < cg(n), para todo n ≥ n0
A expressão 0 ≤ f(n) < cg(n) é válida para toda constante c>0
![Page 79: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/79.jpg)
7979SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO79SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO79SISTEMAS DE
INFORMAÇÃO79SISTEMAS DE
INFORMAÇÃO7979 79SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO79SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO79SISTEMAS DE
INFORMAÇÃO7979SISTEMAS DE
INFORMAÇÃO
Notação
Definição: (g(n)) = {f(n): para toda constante positiva c, existe
uma constante n0 > 0 tal que 0 ≤ cg(n) < f(n), para todon ≥ n0 }
Informalmente, dizemos que, se f(n) ∈ (g(n)), então f(n) cresce mais rapidamente que g(n). Intuitivamente, na notação , a função f(n) tem
crescimento muito maior que g(n) quando n tende para o infinito
![Page 80: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/80.jpg)
8080SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO80SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO80SISTEMAS DE
INFORMAÇÃO80SISTEMAS DE
INFORMAÇÃO8080 80SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO80SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO80SISTEMAS DE
INFORMAÇÃO8080SISTEMAS DE
INFORMAÇÃO
Notação
está para , da mesma forma que o está para O O e são chamados de assintoticamente firmes
?
???
|1
1000n2|∈ω( n)
![Page 81: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/81.jpg)
8181SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO81SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO81SISTEMAS DE
INFORMAÇÃO81SISTEMAS DE
INFORMAÇÃO8181 81SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO81SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO81SISTEMAS DE
INFORMAÇÃO8181SISTEMAS DE
INFORMAÇÃO
Notação
está para , da mesma forma que o está para O O e são chamados de assintoticamente firmes
?
Para todo valor de c, um n0 que satisfaz a definição é:
|1
1000n2|∈ω( n)
n0=|1000 c|+1
![Page 82: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/82.jpg)
8282SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO82SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO82SISTEMAS DE
INFORMAÇÃO82SISTEMAS DE
INFORMAÇÃO8282 82SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO82SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO82SISTEMAS DE
INFORMAÇÃO8282SISTEMAS DE
INFORMAÇÃO
Propriedades das Classes
![Page 83: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/83.jpg)
8383SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO83SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO83SISTEMAS DE
INFORMAÇÃO83SISTEMAS DE
INFORMAÇÃO8383 83SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO83SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO83SISTEMAS DE
INFORMAÇÃO8383SISTEMAS DE
INFORMAÇÃO
Propriedades das Classes
![Page 84: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/84.jpg)
8484SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO84SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO84SISTEMAS DE
INFORMAÇÃO84SISTEMAS DE
INFORMAÇÃO8484 84SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO84SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO84SISTEMAS DE
INFORMAÇÃO8484SISTEMAS DE
INFORMAÇÃO
Exercício
![Page 85: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/85.jpg)
8585SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO85SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO85SISTEMAS DE
INFORMAÇÃO85SISTEMAS DE
INFORMAÇÃO8585 85SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO85SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO85SISTEMAS DE
INFORMAÇÃO8585SISTEMAS DE
INFORMAÇÃO
Referências Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
& Clifford Stein. Algoritmos - Tradução da 2a. Edição Americana. Editora Campus, 2002 (Capítulo 3).
Michael T. Goodrich & Roberto Tamassia. Estruturas de Dados e Algoritmos em Java. Editora Bookman, 4a. Ed. 2007 (Capítulo 4).
Nívio Ziviani. Projeto de Algoritmos com implementações em C e Pascal. Editora Thomson, 2a. Edição, 2004 (Seção 1.3).
Notas de aula dos professores Marcos Chaim, Cid de Souza, Cândida da Silva e Delano M. Beder.
![Page 86: Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos tempos de execução para cada instrução T(n)=c 1n + c2(n-1) + c4(n-1) + c5 + c6](https://reader033.vdocuments.pub/reader033/viewer/2022061000/60afd9e032f2e5637574f6eb/html5/thumbnails/86.jpg)
8686SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO86SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO86SISTEMAS DE
INFORMAÇÃO86SISTEMAS DE
INFORMAÇÃO8686 86SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO86SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO86SISTEMAS DE
INFORMAÇÃO8686SISTEMAS DE
INFORMAÇÃO
Complexidade Assintótica
Professores:
Norton T. Roman
Fátima L. S. Nunes