SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

Exercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresExercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresRonildo Oliveira
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordGabriel Albuquerque
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 
Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoGabriel Albuquerque
 
Lógica para ciencia da computaçao joao nunes souza
Lógica para ciencia da computaçao   joao nunes souzaLógica para ciencia da computaçao   joao nunes souza
Lógica para ciencia da computaçao joao nunes souzaPaulo Cesar Diniz Bicudo
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios ResolucaoBD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios ResolucaoRodrigo Kiyoshi Saito
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosEvandro Agnes
 
Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Marcos Castro
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação João Piedade
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalizaçãoTicianne Darin
 
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
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Thayse
 

Mais procurados (20)

Exercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresExercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de Computadores
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Algoritmo Guloso
Algoritmo GulosoAlgoritmo Guloso
Algoritmo Guloso
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco Mínimo
 
Lógica para ciencia da computaçao joao nunes souza
Lógica para ciencia da computaçao   joao nunes souzaLógica para ciencia da computaçao   joao nunes souza
Lógica para ciencia da computaçao joao nunes souza
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios ResolucaoBD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
BD I - Aula 08 B - Algebra Relacional - Exercicios Resolucao
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)
 
Algoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetiçãoAlgoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetição
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação
 
Árvores balanceadas - AVL
Árvores balanceadas - AVLÁrvores balanceadas - AVL
Árvores balanceadas - AVL
 
Visão computacional
Visão computacionalVisão computacional
Visão computacional
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalização
 
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.
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0
 
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
 

Destaque

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
 
Análise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-CompletosAnálise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-CompletosDelacyr Ferreira
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoLenon Fachiano
 

Destaque (20)

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
 
Análise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-CompletosAnálise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-Completos
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de Ordenação
 

Semelhante a Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e intratáveis

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
 

Semelhante a Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e intratáveis (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
 

Mais de 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
 

Mais de 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
 

Último

PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioDomingasMariaRomao
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAssuser2ad38b
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPaulaYaraDaasPedro
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeitotatianehilda
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxReinaldoMuller1
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 

Último (20)

PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 

Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e intratáveis

  • 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