SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Complexidade de Algoritmos: 
Tempo e espaço; Notação 
assintótica; Algoritmos 
polinomiais e intratáveis 
Professor: José Fernando Rodrigues Júnior 
Universidade de São Paulo 
http://www.icmc.usp.br/pessoas/junio
 Introdução 
 Algoritmos e funções 
 Notação Assintótica – Interpretação 
matemática 
 Notação Assintótica – Aplicação a algoritmos 
 Notação Assintótica – Interpretação 
algorítmica 
 Notação Assintótica – Limitações 
 Notação Assintótica – Um indicador geral 
 Algoritmos Polinomiais e Exponenciais 
 Conclusões 
http://www.icmc.usp.br/pessoas/junio
http://www.icmc.usp.br/pessoas/junio 
Introdução 
Porquê o estudo da Complexidade? 
 Escolher entre vários algoritmos o mais eficiente; 
 Desenvolver algoritmos mais eficientes; 
 Complexidade Computacional - torna possível 
determinar se a definição de determinado algoritmo é 
viável.
Algoritmos e Funções 
Todo algoritmo define uma função matemática 
f(n)= # de instruções 
Ex.: 
void Algoritmo1(int n){ 
int contador = 0; 
for(int i = 0; I < n; I++){ 
http://www.icmc.usp.br/pessoas/junio 
contador++; 
} 
} 
 n passos para terminar
Algoritmos e Funções 
Todo algoritmo define uma função matemática 
f(n)= # de instruções 
Ex.: 
void Algoritmo2(int n){ 
int contador = 0; 
for(int i = 0; i < n; i++){ 
for(int j = 0; j < n; j++){ 
contador++; 
http://www.icmc.usp.br/pessoas/junio 
} 
} 
} 
 n*n passos para terminar
Algoritmos e Funções 
Todo algoritmo define uma função matemática 
f(n)= # de instruções 
Ex.: 
void Algoritmo3(int n){ 
int contador = 0; 
for(int i = 0; i < n; i++){ 
for(int j = 0; j < n; j++){ 
for(int k = 0; k < n; k++){ 
contador++; 
http://www.icmc.usp.br/pessoas/junio 
} 
} 
} 
} 
 n*n*n passos para terminar
Algoritmos e Funções 
Algoritmo1 Algoritmo2 Algoritmo3 
n = 1 1 1 1 
n = 10 10 102 103 
n = 1000 103 106 109 
n = 106 106 1012 1018 
f(n) = n f(n) = n2 f(n) = n3 
http://www.icmc.usp.br/pessoas/junio
Algoritmos e Funções 
Qual algoritmo você escolheria? 
R.: basta olhar na função definida por cada 
algoritmo 
A função de um algoritmo  melhor algoritmo para 
um dado problema 
Fatores: tempo de processamento, memória, 
acessos a disco, largura de banda, entre outros 
http://www.icmc.usp.br/pessoas/junio
Algoritmos e Funções 
A prática de se reduzir um algoritmo a uma função 
matemática denomina-se 
“Análise de complexidade de algoritmos” 
http://www.icmc.usp.br/pessoas/junio
Algoritmos e Funções 
Mas como se faz a análise de um algoritmo, 
matematicamente falando? 
R.: Notação Assintótica: como estabelecer uma 
relação de ordem entre funções matemáticas? 
Funções não são números! 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica – Interpretação 
matemática 
 Caracterização de funções de 3 maneiras: 
 limites assintóticos superior, inferior e estrito 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica – Interpretação 
matemática 
1) Limite assintótico superior: O(g(n)) 
Uma função f(n) = O(g(n)), se f(n) ≤ c1*g(n) para uma 
constante c1 > 0 e para n ≥ n0 
n0 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica – Interpretação 
matemática 
2) Limite assintótico inferior: W(g(n)) 
Uma função f(n) = W(g(n)), se f(n) ≥ c1*g(n) para uma 
constante c1 > 0 e para n ≥ n0 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica – Interpretação 
matemática 
3) Limite assintótico estrito: q(g(n)) 
Uma função f(n) = q(g(n)), se c1*g(n) ≤ f(n) ≤ c2*g(n) 
para um constantes c1 e c2 > 0 e para n ≥ n0 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica – Interpretação 
matemática 
Principais limites assintóticos: 
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(2n) 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
Exemplo: suponha um algoritmo para calcular a 
soma de uma seqüência de números 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
AlgForcaBruta(int n){ 
soma = 0 
for(i = 1 to n) 
soma = soma + i 
http://www.icmc.usp.br/pessoas/junio 
} 
 1 
 n 
 n 
 Custo total: 1 + n + n = 2n + 1 
 f(n) = 2n + 1
Notação Assintótica 
Aplicação a algoritmos 
AlgInstataneo(int n){ 
soma = n*(n+1)/2 
 4 
} 
http://www.icmc.usp.br/pessoas/junio 
 Custo total: 4 
 f(n) = 4
Notação Assintótica 
Aplicação a algoritmos 
AlgBobo(int n){ 
soma = 0 
for(i = 0 to n){ 
for(j = 1 to i){ 
soma = soma + 1 
} 
} 
} 
 1 
 n 
 n((n+1)/2) 
 n((n+1)/2) 
 Custo total: 1 + n + n((n+1)/2) + n((n+1)/2) 
 f(n) = n2 + n +1 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
O que temos então: 
 AlgForcaBruta: f(n) = 2n + 1 
 AlgInstantaneo: f(n) = 4 
 AlgBobo: f(n) = n2 + n +1 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
O AlgForcaBruta tem complexidade 
f(n) = q(g(n))= q(n) , isto é, g(n) = n 
Mas por quê, se f(n) = 2n + 1? 
R.: segundo a definição de limite assintótico estrito 
c1*g(n) ≤ f(n) ≤ c2*g(n) temos: 
1*n ≤ f(n) = 2n + 1 ≤ 3*n 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
O AlgInstantaneo tem complexidade 
f(n) = q(g(n))= q(1) , isto é, g(n) = 1 
Mas por quê, se f(n) = 4? 
R.: segundo a definição de limite assintótico estrito 
c1*g(n) ≤ f(n) ≤ c2*g(n) temos: 
3*1 ≤ f(n) = 4 ≤ 5*1 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
O AlgBobo tem complexidade 
f(n) = q(g(n))= q(n2) , isto é, g(n) = n2 
Mas por quê, se f(n) = n2 + n + 1? 
R.: segundo a definição de limite assintótico estrito 
c1*g(n) ≤ f(n) ≤ c2*g(n) temos: 
1* n2 ≤ f(n) = n2 + n + 1 ≤ 2* n2 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
O que temos então: 
AlgForcaBruta: f(n) = 2n + 1 = q(n) 
AlgInstantaneo: f(n) = 4 = q(1) 
AlgBobo: f(n) = n2 + n +1 = q(n2) 
Analisando-se o que a notação assintótica define, 
verificam-se dois fatos: 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
Analisando-se o que a notação assintótica define, 
verificam-se dois fatos: 
1) A notação assintótica não está interessada na 
função específica f(n), mas na sua taxa de 
crescimento com relação a n. As constantes da 
função f(n) são ignoradas. 
2) Os termos de mais baixa ordem são ignorados. 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Aplicação a algoritmos 
Mas por quê os termos de mais baixa ordem são 
ignorados? 
R.: a notação considera valores de n arbitrariamente 
grandes. Se f(n) < h(n), então f(n) 
lim 
n¥ = 0 
http://www.icmc.usp.br/pessoas/junio 
h(n) 
Ex.: f(n) = n2 > h(n) = n 
para n = 1010, temos n = 1010 = 0 
n2 10100 
~
Notação Assintótica 
Interpretação algorítmica 
Os limites assintóticos têm a seguinte interpretação 
com relação a algoritmos. 
Dado um algoritmo com função f(n)... 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
• Limite assintótico superior: O(g(n)) 
Indica que não importam quais as circunstâncias, 
f(n) ≤ g(n) sempre 
“g(n) é o pior que o meu algoritmo pode fazer” 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
Exemplo: algoritmo de ordenação Quicksort 
Possíveis circunstâncias: 
1) ordenar uma seqüência que já está em ordem 
o Quicksort tem custo n2 
2) ordenar uma seqüência totalmente embaralhada 
o Quicksort tem custo n*logn 
 como n2 é o pior que o Quicksort pode fazer, ele 
terá sempre 
f(n) ≤ n2  O(n2) 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
• Limite assintótico inferior: W(g(n)) 
Indica que não importam quais as circunstâncias, 
f(n) ≥ g(n) sempre 
“g(n) é o melhor que o meu algoritmo pode fazer” 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
Exemplo: algoritmo de ordenação Quicksort 
Possíveis circunstâncias: 
1) ordenar uma seqüência que já está em ordem 
o Quicksort demora n2 
2) ordenar uma seqüência totalmente embaralhada 
o Quicksort demora n*logn 
 como n*logn é o melhor que o Quicksort pode 
fazer, ele terá sempre 
f(n) ≥ n*logn  W(n*logn) 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
• Limite assintótico estrito: q(g(n)) 
Indica que não importam quais as circunstâncias, 
c1g(n) ≤ f(n) ≤ c2g(n) sempre 
“meu algoritmo não faz nem pior, nem melhor 
que g(n)” 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
Exemplo: algoritmo de ordenação Heapsort 
Possíveis circunstâncias: 
1) seqüência já ordenada  custo n*logn 
2) seqüência em ordem inversa  custo n*logn 
3) seqüência totalmente embaralhada custo n*logn 
 em todos os casos n*logn é sempre o que o meu 
algoritmo faz 
c1n*logn ≤ f(n) ≤ c2n*logn  q(n*logn) 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
• Pior caso, melhor caso e caso médio 
Exemplo: algoritmo de ordenação Insertion-sort 
Possíveis circunstâncias 
1) seqüência já ordenada  custo n 
2) seqüência em ordem inversa  custo n2 
3) seqüência toda embaralhada  custo n + d, tal 
que d é o número de operações de rearranjo 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
• considerando-se apenas as melhores entradas, 
pode-se dizer: 
“q(n) no melhor caso” 
• considerando-se apenas as piores entradas, pode-se 
http://www.icmc.usp.br/pessoas/junio 
dizer: 
“q(n2) no pior caso” 
• considerando-se apenas as demais entradas, que 
são a maioria mais provável, pode-se dizer: 
“q(n + d) no caso médio”
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
1) já ordenada  custo n 
2) em ordem inversa  custo n2 
3) toda embaralhada  custo n + d 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
• considerando-se apenas as melhores entradas, 
pode-se dizer: 
“q(n) no melhor caso” 
• considerando-se apenas as piores entradas, pode-se 
1) já ordenada  custo n 
2) em ordem inversa  custo n2 
3) toda embaralhada  custo n + d 
http://www.icmc.usp.br/pessoas/junio 
dizer: 
“q(n2) no pior caso” 
• considerando-se apenas as demais entradas, que 
são a maioria mais provável, pode-se dizer: 
“q(n + d) no caso médio”
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
• considerando-se apenas as melhores entradas, 
pode-se dizer: 
“q(n) no melhor caso” 
• considerando-se apenas as piores entradas, pode-se 
1) já ordenada  custo n 
2) em ordem inversa  custo n2 
3) toda embaralhada  custo n + d 
http://www.icmc.usp.br/pessoas/junio 
dizer: 
“q(n2) no pior caso” 
• considerando-se apenas as demais entradas, que 
são a maioria mais provável, pode-se dizer: 
“q(n + d) no caso médio”
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
• considerando-se apenas as melhores entradas, 
pode-se dizer: 
“q(n) no melhor caso” 
1) já ordenada  custo n 
2) em ordem inversa  custo n2 
3) toda embaralhada  custo n + d 
• considerando-se apenas as piores entradas, pode-se 
http://www.icmc.usp.br/pessoas/junio 
dizer: 
“q(n2) no pior caso” 
• considerando-se apenas as demais entradas, que 
são a maioria mais provável, pode-se dizer: 
“q(n + d) no caso médio”
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
• considerando-se apenas as melhores entradas, 
pode-se dizer: 
“q(n) no melhor caso” 
• considerando-se apenas as piores entradas, pode-se 
http://www.icmc.usp.br/pessoas/junio 
dizer: 
“q(n2) no pior caso” 
• considerando-se apenas as demais entradas, que 
são a maioria mais provável, pode-se dizer: 
“q(n + d) no caso médio”
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
• considerando-se apenas as melhores entradas, 
pode-se dizer: 
“q(n) no melhor caso” 
• considerando-se apenas as piores entradas, pode-se 
http://www.icmc.usp.br/pessoas/junio 
dizer: 
“q(n2) no pior caso” 
• considerando-se apenas as demais entradas, que 
são a maioria mais provável, pode-se dizer: 
“q(n + d) no caso médio”
Notação Assintótica 
Interpretação algorítmica 
• Para o Insertion-sort valem as seguintes afirmações: 
Intuição geral: 
• ele é, ao mesmo tempo, O(n2) e W(n) 
• considerando-se apenas as melhores entradas, 
pode-se dizer: 
“q(n) no melhor caso” 
• considerando-se apenas as piores entradas, pode-se 
http://www.icmc.usp.br/pessoas/junio 
dizer: 
“q(n2) no pior caso” 
• considerando-se apenas as demais entradas, que 
são a maioria mais provável, pode-se dizer: 
“q(n + d) no caso médio” 
• quando se diz: 
“um algoritmo tem complexidade x” 
isso é válido para TODAS as entradas 
• quando se diz: 
“um algoritmo tem complexidade x em tal caso” 
isso é válido para TODAS as entradas que constituem 
aquele caso
Notação Assintótica 
Limitações 
• Como se pode ver, a notação assintótica tem 
expressividade limitada 
1) por si só, ela não apresenta dados a respeito da 
qualidade da entrada 
2) a notação oculta fatores importantes que podem 
fazer diferença na escolha de um algoritmo 
Por exemplo: 
se um algoritmo tem complexidade n2 = q(n2) 
e outro algoritmo tem complexidade 100n = q(n) 
 entradas de tamanho até 100, é melhor usar o 
primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Limitações 
• Como se pode ver, a notação assintótica tem 
expressividade limitada 
1) por si só, ela não apresenta dados a respeito da 
qualidade da entrada 
2) a notação oculta fatores importantes que podem 
fazer diferença na escolha de um algoritmo 
Por exemplo: 
se um algoritmo tem complexidade n2 = q(n2) 
e outro algoritmo tem complexidade 100n = q(n) 
 entradas de tamanho até 100, é melhor usar o 
primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Limitações 
• Como se pode ver, a notação assintótica tem 
expressividade limitada 
1) por si só, ela não apresenta dados a respeito da 
qualidade da entrada 
2) a notação oculta fatores importantes que podem 
fazer diferença na escolha de um algoritmo 
Por exemplo: 
se um algoritmo tem complexidade n2 = q(n2) 
e outro algoritmo tem complexidade 100n = q(n) 
 entradas de tamanho até 100, é melhor usar o 
primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Limitações 
• Como se pode ver, a notação assintótica tem 
expressividade limitada 
1) por si só, ela não apresenta dados a respeito da 
qualidade da entrada 
2) a É notação preciso oculta conhecer fatores bem o importantes problema que que se 
podem 
fazer tem, diferença para que na se escolha possa fazer de um uma algoritmo 
boa 
Por exemplo: 
escolha. 
se um algoritmo tem complexidade n2 = q(n2) 
e outro algoritmo tem complexidade 100n = q(n) 
 entradas de tamanho até 100, é melhor usar o 
primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 
http://www.icmc.usp.br/pessoas/junio
Notação Assintótica 
Um indicador geral 
• Usada para indicar os requisitos de qualquer fator 
que creça como uma função de n. Os principais 
são: 
• tempo, como já visto 
• o espaço de memória 
• o número de acessos a disco 
• a largura de banda 
http://www.icmc.usp.br/pessoas/junio
Algoritmos Polinomiais e 
Exponenciais 
http://www.icmc.usp.br/pessoas/junio
Algoritmos Polinomiais e 
Exponenciais 
Suponha-se um algoritmo com ordem O(2n) 
 para n = 100 
 um computador que realiza 212 operações/segundo 
 tempo total: 4*1010 anos!!! 
http://www.icmc.usp.br/pessoas/junio
http://www.icmc.usp.br/pessoas/junio 
Conclusões 
• A análise de complexidade depende da 
compreensão de dois fatores: 
• interpretação matemática 
• interpretação algorítmica 
• Deve-se sempre lembrar que existem outras 
dimensões envolvidas na análise, como qualidade 
da entrada e arquitetura computacional 
• A análise assintótica fornece um bom parâmetro, 
mas não deve ser o único a ser considerado

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução a Redes Neurais Recorrentes
Introdução a Redes Neurais RecorrentesIntrodução a Redes Neurais Recorrentes
Introdução a Redes Neurais RecorrentesMarlesson Santana
 
Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER Vitor Hugo Melo Araújo
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaLeinylson Fontinele
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Introducao Computacao Slide 1
Introducao Computacao Slide 1Introducao Computacao Slide 1
Introducao Computacao Slide 1Duílio Andrade
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de DadosRoberto Grande
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalizaçãoTicianne Darin
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 

Was ist angesagt? (20)

Introdução a Redes Neurais Recorrentes
Introdução a Redes Neurais RecorrentesIntrodução a Redes Neurais Recorrentes
Introdução a Redes Neurais Recorrentes
 
Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na prática
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Portas logicas
Portas logicasPortas logicas
Portas logicas
 
Introducao Computacao Slide 1
Introducao Computacao Slide 1Introducao Computacao Slide 1
Introducao Computacao Slide 1
 
03 mer2
03 mer203 mer2
03 mer2
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalização
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 

Andere mochten auch

Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasDelacyr Ferreira
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Júlio Rocha
 
01 algorimos e complexidade introduç o
01   algorimos e complexidade introduç o01   algorimos e complexidade introduç o
01 algorimos e complexidade introduç oCravid Ekuikui
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoGustavo Carvalho
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoDelacyr Ferreira
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeDelacyr Ferreira
 
Tutorial aed iii 001 - algoritmo de ordenação shellsort
Tutorial aed iii   001 - algoritmo de ordenação shellsortTutorial aed iii   001 - algoritmo de ordenação shellsort
Tutorial aed iii 001 - algoritmo de ordenação shellsortFlávio Freitas
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmosRicardo Bolanho
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesMauricio Volkweis Astiazara
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesMauricio Volkweis Astiazara
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Análise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação InternaAnálise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação InternaJohnnatan Messias
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sortLeno Oliveira
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 

Andere mochten auch (20)

Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de Recorrências
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
01 algorimos e complexidade introduç o
01   algorimos e complexidade introduç o01   algorimos e complexidade introduç o
01 algorimos e complexidade introduç o
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenação
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Tutorial aed iii 001 - algoritmo de ordenação shellsort
Tutorial aed iii   001 - algoritmo de ordenação shellsortTutorial aed iii   001 - algoritmo de ordenação shellsort
Tutorial aed iii 001 - algoritmo de ordenação shellsort
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de Chaves
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de Chaves
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
7 slides
7 slides7 slides
7 slides
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Análise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação InternaAnálise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação Interna
 
Hierarquia de Chomsky
Hierarquia de ChomskyHierarquia de Chomsky
Hierarquia de Chomsky
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sort
 
Ordenação por inserção
Ordenação por inserçãoOrdenação por inserção
Ordenação por inserção
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 

Ähnlich wie Complexidade Algoritmos: Tempo Espaço Notação

Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfItaloRainier1
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfCaiqueMiranda7
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em CCaique Silva
 
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NAAula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NACloves da Rocha
 
Introdução Programação Em Maple
Introdução Programação Em MapleIntrodução Programação Em Maple
Introdução Programação Em Maplejeandson correa
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Thaci Santos
 
Manual winplot
Manual winplotManual winplot
Manual winplotFranbfk
 
Inteligencia artificial 2
Inteligencia artificial 2Inteligencia artificial 2
Inteligencia artificial 2Nauber Gois
 
Programação para engenharia - aspectos teóricos e computacionais
Programação para engenharia - aspectos teóricos e computacionaisProgramação para engenharia - aspectos teóricos e computacionais
Programação para engenharia - aspectos teóricos e computacionaisAlexandre Grossi
 
Converting an implementation using the C language to CSP modelling
Converting an implementation using the C language to CSP modellingConverting an implementation using the C language to CSP modelling
Converting an implementation using the C language to CSP modellingfmillano
 
tdc-recife-2020-complexidade-cognitiva
tdc-recife-2020-complexidade-cognitivatdc-recife-2020-complexidade-cognitiva
tdc-recife-2020-complexidade-cognitivaDouglas Siviotti
 

Ähnlich wie Complexidade Algoritmos: Tempo Espaço Notação (20)

Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
Aula2
Aula2Aula2
Aula2
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdf
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em C
 
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NAAula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
Aula 2 - TEÓRICA - Prof. MSc. Cloves Rocha - PIE - AA - (2018.2) CCO 8 NA
 
0001
00010001
0001
 
000003 complexidade
000003 complexidade000003 complexidade
000003 complexidade
 
Introdução Programação Em Maple
Introdução Programação Em MapleIntrodução Programação Em Maple
Introdução Programação Em Maple
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.
 
Algoritmo0
Algoritmo0Algoritmo0
Algoritmo0
 
kNN
kNNkNN
kNN
 
Manual winplot
Manual winplotManual winplot
Manual winplot
 
Inteligencia artificial 2
Inteligencia artificial 2Inteligencia artificial 2
Inteligencia artificial 2
 
Programação para engenharia - aspectos teóricos e computacionais
Programação para engenharia - aspectos teóricos e computacionaisProgramação para engenharia - aspectos teóricos e computacionais
Programação para engenharia - aspectos teóricos e computacionais
 
Complexidade algoritmos
Complexidade algoritmosComplexidade algoritmos
Complexidade algoritmos
 
Converting an implementation using the C language to CSP modelling
Converting an implementation using the C language to CSP modellingConverting an implementation using the C language to CSP modelling
Converting an implementation using the C language to CSP modelling
 
tdc-recife-2020-complexidade-cognitiva
tdc-recife-2020-complexidade-cognitivatdc-recife-2020-complexidade-cognitiva
tdc-recife-2020-complexidade-cognitiva
 

Mehr von Universidade de São Paulo

Introdução às ferramentas de Business Intelligence do ecossistema Hadoop
Introdução às ferramentas de Business Intelligence do ecossistema HadoopIntrodução às ferramentas de Business Intelligence do ecossistema Hadoop
Introdução às ferramentas de Business Intelligence do ecossistema HadoopUniversidade de São Paulo
 
On the Support of a Similarity-Enabled Relational Database Management System ...
On the Support of a Similarity-Enabled Relational Database Management System ...On the Support of a Similarity-Enabled Relational Database Management System ...
On the Support of a Similarity-Enabled Relational Database Management System ...Universidade de São Paulo
 
Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...
Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...
Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...Universidade de São Paulo
 
Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...
Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...
Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...Universidade de São Paulo
 
Unveiling smoke in social images with the SmokeBlock approach
Unveiling smoke in social images with the SmokeBlock approachUnveiling smoke in social images with the SmokeBlock approach
Unveiling smoke in social images with the SmokeBlock approachUniversidade de São Paulo
 
Vertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale Graphs
Vertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale GraphsVertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale Graphs
Vertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale GraphsUniversidade de São Paulo
 
Fast Billion-scale Graph Computation Using a Bimodal Block Processing Model
Fast Billion-scale Graph Computation Using a Bimodal Block Processing ModelFast Billion-scale Graph Computation Using a Bimodal Block Processing Model
Fast Billion-scale Graph Computation Using a Bimodal Block Processing ModelUniversidade de São Paulo
 
StructMatrix: large-scale visualization of graphs by means of structure detec...
StructMatrix: large-scale visualization of graphs by means of structure detec...StructMatrix: large-scale visualization of graphs by means of structure detec...
StructMatrix: large-scale visualization of graphs by means of structure detec...Universidade de São Paulo
 
Techniques for effective and efficient fire detection from social media images
Techniques for effective and efficient fire detection from social media imagesTechniques for effective and efficient fire detection from social media images
Techniques for effective and efficient fire detection from social media imagesUniversidade de São Paulo
 
Multimodal graph-based analysis over the DBLP repository: critical discoverie...
Multimodal graph-based analysis over the DBLP repository: critical discoverie...Multimodal graph-based analysis over the DBLP repository: critical discoverie...
Multimodal graph-based analysis over the DBLP repository: critical discoverie...Universidade de São Paulo
 
Supervised-Learning Link Recommendation in the DBLP co-authoring network
Supervised-Learning Link Recommendation in the DBLP co-authoring networkSupervised-Learning Link Recommendation in the DBLP co-authoring network
Supervised-Learning Link Recommendation in the DBLP co-authoring networkUniversidade de São Paulo
 
Reviewing Data Visualization: an Analytical Taxonomical Study
Reviewing Data Visualization: an Analytical Taxonomical StudyReviewing Data Visualization: an Analytical Taxonomical Study
Reviewing Data Visualization: an Analytical Taxonomical StudyUniversidade de São Paulo
 
Visualization tree multiple linked analytical decisions
Visualization tree multiple linked analytical decisionsVisualization tree multiple linked analytical decisions
Visualization tree multiple linked analytical decisionsUniversidade de São Paulo
 
Frequency plot and relevance plot to enhance visual data exploration
Frequency plot and relevance plot to enhance visual data explorationFrequency plot and relevance plot to enhance visual data exploration
Frequency plot and relevance plot to enhance visual data explorationUniversidade de São Paulo
 

Mehr von Universidade de São Paulo (20)

A gentle introduction to Deep Learning
A gentle introduction to Deep LearningA gentle introduction to Deep Learning
A gentle introduction to Deep Learning
 
Computação: carreira e mercado de trabalho
Computação: carreira e mercado de trabalhoComputação: carreira e mercado de trabalho
Computação: carreira e mercado de trabalho
 
Introdução às ferramentas de Business Intelligence do ecossistema Hadoop
Introdução às ferramentas de Business Intelligence do ecossistema HadoopIntrodução às ferramentas de Business Intelligence do ecossistema Hadoop
Introdução às ferramentas de Business Intelligence do ecossistema Hadoop
 
On the Support of a Similarity-Enabled Relational Database Management System ...
On the Support of a Similarity-Enabled Relational Database Management System ...On the Support of a Similarity-Enabled Relational Database Management System ...
On the Support of a Similarity-Enabled Relational Database Management System ...
 
Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...
Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...
Effective and Unsupervised Fractal-based Feature Selection for Very Large Dat...
 
Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...
Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...
Fire Detection on Unconstrained Videos Using Color-Aware Spatial Modeling and...
 
Unveiling smoke in social images with the SmokeBlock approach
Unveiling smoke in social images with the SmokeBlock approachUnveiling smoke in social images with the SmokeBlock approach
Unveiling smoke in social images with the SmokeBlock approach
 
Vertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale Graphs
Vertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale GraphsVertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale Graphs
Vertex Centric Asynchronous Belief Propagation Algorithm for Large-Scale Graphs
 
Fast Billion-scale Graph Computation Using a Bimodal Block Processing Model
Fast Billion-scale Graph Computation Using a Bimodal Block Processing ModelFast Billion-scale Graph Computation Using a Bimodal Block Processing Model
Fast Billion-scale Graph Computation Using a Bimodal Block Processing Model
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
StructMatrix: large-scale visualization of graphs by means of structure detec...
StructMatrix: large-scale visualization of graphs by means of structure detec...StructMatrix: large-scale visualization of graphs by means of structure detec...
StructMatrix: large-scale visualization of graphs by means of structure detec...
 
Apresentacao vldb
Apresentacao vldbApresentacao vldb
Apresentacao vldb
 
Techniques for effective and efficient fire detection from social media images
Techniques for effective and efficient fire detection from social media imagesTechniques for effective and efficient fire detection from social media images
Techniques for effective and efficient fire detection from social media images
 
Multimodal graph-based analysis over the DBLP repository: critical discoverie...
Multimodal graph-based analysis over the DBLP repository: critical discoverie...Multimodal graph-based analysis over the DBLP repository: critical discoverie...
Multimodal graph-based analysis over the DBLP repository: critical discoverie...
 
Supervised-Learning Link Recommendation in the DBLP co-authoring network
Supervised-Learning Link Recommendation in the DBLP co-authoring networkSupervised-Learning Link Recommendation in the DBLP co-authoring network
Supervised-Learning Link Recommendation in the DBLP co-authoring network
 
Graph-based Relational Data Visualization
Graph-based RelationalData VisualizationGraph-based RelationalData Visualization
Graph-based Relational Data Visualization
 
Reviewing Data Visualization: an Analytical Taxonomical Study
Reviewing Data Visualization: an Analytical Taxonomical StudyReviewing Data Visualization: an Analytical Taxonomical Study
Reviewing Data Visualization: an Analytical Taxonomical Study
 
Dawarehouse e OLAP
Dawarehouse e OLAPDawarehouse e OLAP
Dawarehouse e OLAP
 
Visualization tree multiple linked analytical decisions
Visualization tree multiple linked analytical decisionsVisualization tree multiple linked analytical decisions
Visualization tree multiple linked analytical decisions
 
Frequency plot and relevance plot to enhance visual data exploration
Frequency plot and relevance plot to enhance visual data explorationFrequency plot and relevance plot to enhance visual data exploration
Frequency plot and relevance plot to enhance visual data exploration
 

Kürzlich hochgeladen

02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 

Kürzlich hochgeladen (20)

02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 

Complexidade Algoritmos: Tempo Espaço Notação

  • 1. Complexidade de Algoritmos: Tempo e espaço; Notação assintótica; Algoritmos polinomiais e intratáveis Professor: José Fernando Rodrigues Júnior Universidade de São Paulo http://www.icmc.usp.br/pessoas/junio
  • 2.  Introdução  Algoritmos e funções  Notação Assintótica – Interpretação matemática  Notação Assintótica – Aplicação a algoritmos  Notação Assintótica – Interpretação algorítmica  Notação Assintótica – Limitações  Notação Assintótica – Um indicador geral  Algoritmos Polinomiais e Exponenciais  Conclusões http://www.icmc.usp.br/pessoas/junio
  • 3. http://www.icmc.usp.br/pessoas/junio Introdução Porquê o estudo da Complexidade?  Escolher entre vários algoritmos o mais eficiente;  Desenvolver algoritmos mais eficientes;  Complexidade Computacional - torna possível determinar se a definição de determinado algoritmo é viável.
  • 4. Algoritmos e Funções Todo algoritmo define uma função matemática f(n)= # de instruções Ex.: void Algoritmo1(int n){ int contador = 0; for(int i = 0; I < n; I++){ http://www.icmc.usp.br/pessoas/junio contador++; } }  n passos para terminar
  • 5. Algoritmos e Funções Todo algoritmo define uma função matemática f(n)= # de instruções Ex.: void Algoritmo2(int n){ int contador = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ contador++; http://www.icmc.usp.br/pessoas/junio } } }  n*n passos para terminar
  • 6. Algoritmos e Funções Todo algoritmo define uma função matemática f(n)= # de instruções Ex.: void Algoritmo3(int n){ int contador = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ for(int k = 0; k < n; k++){ contador++; http://www.icmc.usp.br/pessoas/junio } } } }  n*n*n passos para terminar
  • 7. Algoritmos e Funções Algoritmo1 Algoritmo2 Algoritmo3 n = 1 1 1 1 n = 10 10 102 103 n = 1000 103 106 109 n = 106 106 1012 1018 f(n) = n f(n) = n2 f(n) = n3 http://www.icmc.usp.br/pessoas/junio
  • 8. Algoritmos e Funções Qual algoritmo você escolheria? R.: basta olhar na função definida por cada algoritmo A função de um algoritmo  melhor algoritmo para um dado problema Fatores: tempo de processamento, memória, acessos a disco, largura de banda, entre outros http://www.icmc.usp.br/pessoas/junio
  • 9. Algoritmos e Funções A prática de se reduzir um algoritmo a uma função matemática denomina-se “Análise de complexidade de algoritmos” http://www.icmc.usp.br/pessoas/junio
  • 10. Algoritmos e Funções Mas como se faz a análise de um algoritmo, matematicamente falando? R.: Notação Assintótica: como estabelecer uma relação de ordem entre funções matemáticas? Funções não são números! http://www.icmc.usp.br/pessoas/junio
  • 11. Notação Assintótica – Interpretação matemática  Caracterização de funções de 3 maneiras:  limites assintóticos superior, inferior e estrito http://www.icmc.usp.br/pessoas/junio
  • 12. Notação Assintótica – Interpretação matemática 1) Limite assintótico superior: O(g(n)) Uma função f(n) = O(g(n)), se f(n) ≤ c1*g(n) para uma constante c1 > 0 e para n ≥ n0 n0 http://www.icmc.usp.br/pessoas/junio
  • 13. Notação Assintótica – Interpretação matemática 2) Limite assintótico inferior: W(g(n)) Uma função f(n) = W(g(n)), se f(n) ≥ c1*g(n) para uma constante c1 > 0 e para n ≥ n0 http://www.icmc.usp.br/pessoas/junio
  • 14. Notação Assintótica – Interpretação matemática 3) Limite assintótico estrito: q(g(n)) Uma função f(n) = q(g(n)), se c1*g(n) ≤ f(n) ≤ c2*g(n) para um constantes c1 e c2 > 0 e para n ≥ n0 http://www.icmc.usp.br/pessoas/junio
  • 15. Notação Assintótica – Interpretação matemática Principais limites assintóticos: O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(2n) http://www.icmc.usp.br/pessoas/junio
  • 16. Notação Assintótica Aplicação a algoritmos Exemplo: suponha um algoritmo para calcular a soma de uma seqüência de números http://www.icmc.usp.br/pessoas/junio
  • 17. Notação Assintótica Aplicação a algoritmos AlgForcaBruta(int n){ soma = 0 for(i = 1 to n) soma = soma + i http://www.icmc.usp.br/pessoas/junio }  1  n  n  Custo total: 1 + n + n = 2n + 1  f(n) = 2n + 1
  • 18. Notação Assintótica Aplicação a algoritmos AlgInstataneo(int n){ soma = n*(n+1)/2  4 } http://www.icmc.usp.br/pessoas/junio  Custo total: 4  f(n) = 4
  • 19. Notação Assintótica Aplicação a algoritmos AlgBobo(int n){ soma = 0 for(i = 0 to n){ for(j = 1 to i){ soma = soma + 1 } } }  1  n  n((n+1)/2)  n((n+1)/2)  Custo total: 1 + n + n((n+1)/2) + n((n+1)/2)  f(n) = n2 + n +1 http://www.icmc.usp.br/pessoas/junio
  • 20. Notação Assintótica Aplicação a algoritmos O que temos então:  AlgForcaBruta: f(n) = 2n + 1  AlgInstantaneo: f(n) = 4  AlgBobo: f(n) = n2 + n +1 http://www.icmc.usp.br/pessoas/junio
  • 21. Notação Assintótica Aplicação a algoritmos O AlgForcaBruta tem complexidade f(n) = q(g(n))= q(n) , isto é, g(n) = n Mas por quê, se f(n) = 2n + 1? R.: segundo a definição de limite assintótico estrito c1*g(n) ≤ f(n) ≤ c2*g(n) temos: 1*n ≤ f(n) = 2n + 1 ≤ 3*n http://www.icmc.usp.br/pessoas/junio
  • 22. Notação Assintótica Aplicação a algoritmos O AlgInstantaneo tem complexidade f(n) = q(g(n))= q(1) , isto é, g(n) = 1 Mas por quê, se f(n) = 4? R.: segundo a definição de limite assintótico estrito c1*g(n) ≤ f(n) ≤ c2*g(n) temos: 3*1 ≤ f(n) = 4 ≤ 5*1 http://www.icmc.usp.br/pessoas/junio
  • 23. Notação Assintótica Aplicação a algoritmos O AlgBobo tem complexidade f(n) = q(g(n))= q(n2) , isto é, g(n) = n2 Mas por quê, se f(n) = n2 + n + 1? R.: segundo a definição de limite assintótico estrito c1*g(n) ≤ f(n) ≤ c2*g(n) temos: 1* n2 ≤ f(n) = n2 + n + 1 ≤ 2* n2 http://www.icmc.usp.br/pessoas/junio
  • 24. Notação Assintótica Aplicação a algoritmos O que temos então: AlgForcaBruta: f(n) = 2n + 1 = q(n) AlgInstantaneo: f(n) = 4 = q(1) AlgBobo: f(n) = n2 + n +1 = q(n2) Analisando-se o que a notação assintótica define, verificam-se dois fatos: http://www.icmc.usp.br/pessoas/junio
  • 25. Notação Assintótica Aplicação a algoritmos Analisando-se o que a notação assintótica define, verificam-se dois fatos: 1) A notação assintótica não está interessada na função específica f(n), mas na sua taxa de crescimento com relação a n. As constantes da função f(n) são ignoradas. 2) Os termos de mais baixa ordem são ignorados. http://www.icmc.usp.br/pessoas/junio
  • 26. Notação Assintótica Aplicação a algoritmos Mas por quê os termos de mais baixa ordem são ignorados? R.: a notação considera valores de n arbitrariamente grandes. Se f(n) < h(n), então f(n) lim n¥ = 0 http://www.icmc.usp.br/pessoas/junio h(n) Ex.: f(n) = n2 > h(n) = n para n = 1010, temos n = 1010 = 0 n2 10100 ~
  • 27. Notação Assintótica Interpretação algorítmica Os limites assintóticos têm a seguinte interpretação com relação a algoritmos. Dado um algoritmo com função f(n)... http://www.icmc.usp.br/pessoas/junio
  • 28. Notação Assintótica Interpretação algorítmica • Limite assintótico superior: O(g(n)) Indica que não importam quais as circunstâncias, f(n) ≤ g(n) sempre “g(n) é o pior que o meu algoritmo pode fazer” http://www.icmc.usp.br/pessoas/junio
  • 29. Notação Assintótica Interpretação algorítmica Exemplo: algoritmo de ordenação Quicksort Possíveis circunstâncias: 1) ordenar uma seqüência que já está em ordem o Quicksort tem custo n2 2) ordenar uma seqüência totalmente embaralhada o Quicksort tem custo n*logn  como n2 é o pior que o Quicksort pode fazer, ele terá sempre f(n) ≤ n2  O(n2) http://www.icmc.usp.br/pessoas/junio
  • 30. Notação Assintótica Interpretação algorítmica • Limite assintótico inferior: W(g(n)) Indica que não importam quais as circunstâncias, f(n) ≥ g(n) sempre “g(n) é o melhor que o meu algoritmo pode fazer” http://www.icmc.usp.br/pessoas/junio
  • 31. Notação Assintótica Interpretação algorítmica Exemplo: algoritmo de ordenação Quicksort Possíveis circunstâncias: 1) ordenar uma seqüência que já está em ordem o Quicksort demora n2 2) ordenar uma seqüência totalmente embaralhada o Quicksort demora n*logn  como n*logn é o melhor que o Quicksort pode fazer, ele terá sempre f(n) ≥ n*logn  W(n*logn) http://www.icmc.usp.br/pessoas/junio
  • 32. Notação Assintótica Interpretação algorítmica • Limite assintótico estrito: q(g(n)) Indica que não importam quais as circunstâncias, c1g(n) ≤ f(n) ≤ c2g(n) sempre “meu algoritmo não faz nem pior, nem melhor que g(n)” http://www.icmc.usp.br/pessoas/junio
  • 33. Notação Assintótica Interpretação algorítmica Exemplo: algoritmo de ordenação Heapsort Possíveis circunstâncias: 1) seqüência já ordenada  custo n*logn 2) seqüência em ordem inversa  custo n*logn 3) seqüência totalmente embaralhada custo n*logn  em todos os casos n*logn é sempre o que o meu algoritmo faz c1n*logn ≤ f(n) ≤ c2n*logn  q(n*logn) http://www.icmc.usp.br/pessoas/junio
  • 34. Notação Assintótica Interpretação algorítmica • Pior caso, melhor caso e caso médio Exemplo: algoritmo de ordenação Insertion-sort Possíveis circunstâncias 1) seqüência já ordenada  custo n 2) seqüência em ordem inversa  custo n2 3) seqüência toda embaralhada  custo n + d, tal que d é o número de operações de rearranjo http://www.icmc.usp.br/pessoas/junio
  • 35. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: • ele é, ao mesmo tempo, O(n2) e W(n) • considerando-se apenas as melhores entradas, pode-se dizer: “q(n) no melhor caso” • considerando-se apenas as piores entradas, pode-se http://www.icmc.usp.br/pessoas/junio dizer: “q(n2) no pior caso” • considerando-se apenas as demais entradas, que são a maioria mais provável, pode-se dizer: “q(n + d) no caso médio”
  • 36. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: • ele é, ao mesmo tempo, O(n2) e W(n) 1) já ordenada  custo n 2) em ordem inversa  custo n2 3) toda embaralhada  custo n + d http://www.icmc.usp.br/pessoas/junio
  • 37. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: • ele é, ao mesmo tempo, O(n2) e W(n) • considerando-se apenas as melhores entradas, pode-se dizer: “q(n) no melhor caso” • considerando-se apenas as piores entradas, pode-se 1) já ordenada  custo n 2) em ordem inversa  custo n2 3) toda embaralhada  custo n + d http://www.icmc.usp.br/pessoas/junio dizer: “q(n2) no pior caso” • considerando-se apenas as demais entradas, que são a maioria mais provável, pode-se dizer: “q(n + d) no caso médio”
  • 38. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: • ele é, ao mesmo tempo, O(n2) e W(n) • considerando-se apenas as melhores entradas, pode-se dizer: “q(n) no melhor caso” • considerando-se apenas as piores entradas, pode-se 1) já ordenada  custo n 2) em ordem inversa  custo n2 3) toda embaralhada  custo n + d http://www.icmc.usp.br/pessoas/junio dizer: “q(n2) no pior caso” • considerando-se apenas as demais entradas, que são a maioria mais provável, pode-se dizer: “q(n + d) no caso médio”
  • 39. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: • ele é, ao mesmo tempo, O(n2) e W(n) • considerando-se apenas as melhores entradas, pode-se dizer: “q(n) no melhor caso” 1) já ordenada  custo n 2) em ordem inversa  custo n2 3) toda embaralhada  custo n + d • considerando-se apenas as piores entradas, pode-se http://www.icmc.usp.br/pessoas/junio dizer: “q(n2) no pior caso” • considerando-se apenas as demais entradas, que são a maioria mais provável, pode-se dizer: “q(n + d) no caso médio”
  • 40. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: • ele é, ao mesmo tempo, O(n2) e W(n) • considerando-se apenas as melhores entradas, pode-se dizer: “q(n) no melhor caso” • considerando-se apenas as piores entradas, pode-se http://www.icmc.usp.br/pessoas/junio dizer: “q(n2) no pior caso” • considerando-se apenas as demais entradas, que são a maioria mais provável, pode-se dizer: “q(n + d) no caso médio”
  • 41. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: • ele é, ao mesmo tempo, O(n2) e W(n) • considerando-se apenas as melhores entradas, pode-se dizer: “q(n) no melhor caso” • considerando-se apenas as piores entradas, pode-se http://www.icmc.usp.br/pessoas/junio dizer: “q(n2) no pior caso” • considerando-se apenas as demais entradas, que são a maioria mais provável, pode-se dizer: “q(n + d) no caso médio”
  • 42. Notação Assintótica Interpretação algorítmica • Para o Insertion-sort valem as seguintes afirmações: Intuição geral: • ele é, ao mesmo tempo, O(n2) e W(n) • considerando-se apenas as melhores entradas, pode-se dizer: “q(n) no melhor caso” • considerando-se apenas as piores entradas, pode-se http://www.icmc.usp.br/pessoas/junio dizer: “q(n2) no pior caso” • considerando-se apenas as demais entradas, que são a maioria mais provável, pode-se dizer: “q(n + d) no caso médio” • quando se diz: “um algoritmo tem complexidade x” isso é válido para TODAS as entradas • quando se diz: “um algoritmo tem complexidade x em tal caso” isso é válido para TODAS as entradas que constituem aquele caso
  • 43. Notação Assintótica Limitações • Como se pode ver, a notação assintótica tem expressividade limitada 1) por si só, ela não apresenta dados a respeito da qualidade da entrada 2) a notação oculta fatores importantes que podem fazer diferença na escolha de um algoritmo Por exemplo: se um algoritmo tem complexidade n2 = q(n2) e outro algoritmo tem complexidade 100n = q(n)  entradas de tamanho até 100, é melhor usar o primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 http://www.icmc.usp.br/pessoas/junio
  • 44. Notação Assintótica Limitações • Como se pode ver, a notação assintótica tem expressividade limitada 1) por si só, ela não apresenta dados a respeito da qualidade da entrada 2) a notação oculta fatores importantes que podem fazer diferença na escolha de um algoritmo Por exemplo: se um algoritmo tem complexidade n2 = q(n2) e outro algoritmo tem complexidade 100n = q(n)  entradas de tamanho até 100, é melhor usar o primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 http://www.icmc.usp.br/pessoas/junio
  • 45. Notação Assintótica Limitações • Como se pode ver, a notação assintótica tem expressividade limitada 1) por si só, ela não apresenta dados a respeito da qualidade da entrada 2) a notação oculta fatores importantes que podem fazer diferença na escolha de um algoritmo Por exemplo: se um algoritmo tem complexidade n2 = q(n2) e outro algoritmo tem complexidade 100n = q(n)  entradas de tamanho até 100, é melhor usar o primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 http://www.icmc.usp.br/pessoas/junio
  • 46. Notação Assintótica Limitações • Como se pode ver, a notação assintótica tem expressividade limitada 1) por si só, ela não apresenta dados a respeito da qualidade da entrada 2) a É notação preciso oculta conhecer fatores bem o importantes problema que que se podem fazer tem, diferença para que na se escolha possa fazer de um uma algoritmo boa Por exemplo: escolha. se um algoritmo tem complexidade n2 = q(n2) e outro algoritmo tem complexidade 100n = q(n)  entradas de tamanho até 100, é melhor usar o primeiro algoritmo, pois n2 ≤ 100n, para n ≤ 100 http://www.icmc.usp.br/pessoas/junio
  • 47. Notação Assintótica Um indicador geral • Usada para indicar os requisitos de qualquer fator que creça como uma função de n. Os principais são: • tempo, como já visto • o espaço de memória • o número de acessos a disco • a largura de banda http://www.icmc.usp.br/pessoas/junio
  • 48. Algoritmos Polinomiais e Exponenciais http://www.icmc.usp.br/pessoas/junio
  • 49. Algoritmos Polinomiais e Exponenciais Suponha-se um algoritmo com ordem O(2n)  para n = 100  um computador que realiza 212 operações/segundo  tempo total: 4*1010 anos!!! http://www.icmc.usp.br/pessoas/junio
  • 50. http://www.icmc.usp.br/pessoas/junio Conclusões • A análise de complexidade depende da compreensão de dois fatores: • interpretação matemática • interpretação algorítmica • Deve-se sempre lembrar que existem outras dimensões envolvidas na análise, como qualidade da entrada e arquitetura computacional • A análise assintótica fornece um bom parâmetro, mas não deve ser o único a ser considerado