Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos...
Transcript of Complexidade Assintótica - USP · 2016. 8. 24. · Tempo de execução do algoritmo = soma dos...
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
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?
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)
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 ???
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 ???
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; } } }
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
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 é?
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.
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?
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?
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
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.
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
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
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 )
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 )
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
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
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.
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.
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.
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.
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.
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)
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.
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.
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.
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
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
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
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
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
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
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
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.
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
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).
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.
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
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? ???
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).
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? ???
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).
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? ???
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
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
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
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
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
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.
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.
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
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)
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
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
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
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...
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.
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
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
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?
???
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)
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
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 )
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 )
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
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).
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)
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|
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|
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|
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))
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)
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
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
)
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
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
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
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)
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
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
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
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
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.
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