Buscar

AEDII-aula03

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Aula 03 – Notação assintótica, 
Pesquisa binária e recursividade
MC3305
Algoritmos e Estruturas de Dados II
Prof. Jesús P. Mena-Chalco
jesus.mena@ufabc.edu.br
2Q-2014
2
Notação assintótica de funções
Introdução baseada nas aulas do Prof. Antonio A. F. Loureiro (UFMG)
3
Comportamento assintótico de funções
A análise de algoritmos é realizada para
valores grandes de n.
Estudaremos o comportamento assintótico das funções de 
custo.
O comportamento assintótico de f(n) representa o limite do 
comportamento de custo, quando n cresce.
4
Dominação assintótica
Definição:
Uma função f(n) domina assintoticamente uma outra 
função g(n) se existem duas constantes positivas c e tais 
que, para , temos:
5
Dominação assintótica
Definição:
Uma função f(n) domina assintoticamente uma outra 
função g(n) se existem duas constantes positivas c e tais 
que, para , temos:
6
Dominação assintótica
Exemplo:
Sejam
Ambas as funções dominam assintoticamente uma da outra, 
ja que:
 para n>=1
 para n>=0
7
Notação assintótica de funções
Existem 3 notações assintóticas de funções:
Notação
Notação
Notação
8
Notação 
 g(n) é um limite assintótico firme de f(n)
9
Notação 
 f(n) é da ordem no máximo g(n)
O é usada para expressar o tempo de execução de um algoritmo no pior caso, está se 
definindo também o limite (superior) do tempo de execução desse algoritmo para todas 
as entradas.
10
Notação 
Operações entre conjuntos de funções
11
Notação 
Omega: Define um limite inferior para a função, por um fator constante.
g(n) é um limite assintoticamente inferior
12
Teorema 
13
Comparação de programas
Podemos avaliar programas comparando as funções de 
complexidade, negligenciando as constantes de 
proporcionalidade.
Um programa com tempo de execução é melhor do 
que outro com tempo
14
Comparação de programas
Exemplo:
O programa1 leva vezes para ser executado.
O programa2 leva vezes para ser executa. 
Qual dos dois é o melhor?
Programa 1 Programa 2
15
Comparação de programas
Exemplo:
O programa1 leva vezes para ser executado.
O programa2 leva vezes para ser executa. 
Qual dos dois é o melhor?
Depende do tamanho do problema.
Programa 1 Programa 2
16
Comparação de programas
Exemplo:
O programa1 leva vezes para ser executado.
O programa2 leva vezes para ser executa. 
Qual dos dois é o melhor?
Depende do tamanho do problema.
Para n<50, o programa 2 é melhor
Para n>50, o programa 1 é melhor
Programa 1 Programa 2
17
Comparação de programas
18
Comparação de funções de complexidade
19
Hierarquias de funções
A seguinte herarquia de funções pode ser definida do ponto 
de vista assintótico:
onde e são constantes arbitrárias com 
20
Tratabilidade do problema
Um problema é considerado
Intratável:
Se ele é tão difícil que não se conhece um algoritmo 
polinomial para resolvê-lo
Tratável (bem resolvido):
Se existe um algoritmo polinomial para resolvê-lo.
21
Tratabilidade do problema
Um problema é considerado
Intratável:
Se ele é tão difícil que não se conhece um algoritmo 
polinomial para resolvê-lo
Ex. Algoritmo do caixeiro viajante
Tratável (bem resolvido):
Se existe um algoritmo polinomial para resolvê-lo.
Ex. Algoritmo de multiplicação de matrizes.
← Algoritmo de Strassen
22
O problema do Caixeiro Viajante
Um caixeiro viajante deseja visitar n cidades de tal forma que 
sua viagem inicie e termine em uma mesma cidade, e cada 
cidade pode ser visitada uma única vez.
Supondo que sempre há uma estrada entre 2 cidades, o 
problema é encontrar a menor ruta para a viagem.
23
O problema do Caixeiro Viajante
Um caixeiro viajante deseja visitar n cidades de tal forma que 
sua viagem inicie e termine em uma mesma cidade, e cada 
cidade pode ser visitada uma única vez.
Supondo que sempre há uma estrada entre 2 cidades, o 
problema é encontrar a menor ruta para a viagem.
24
O problema do Caixeiro Viajante
Um algoritmo “simples” seria verificar todas as rotas e 
escolher a menor delas.
Há rotas possíveis 
a distância total percorrida em cada rota envolve n adições
logo o número de adiciones é
25
O problema do Caixeiro Viajante
Um algoritmo “simples” seria verificar todas as rotas e 
escolher a menor delas.
Há rotas possíveis 
a distância total percorrida em cada rota envolve n adições
logo o número de adiciones é
No exemplo anterior teríamos 24 adições.
26
O problema do Caixeiro Viajante
Um algoritmo “simples” seria verificar todas as rotas e 
escolher a menor delas.
Há rotas possíveis 
a distância total percorrida em cada rota envolve n adições
logo o número de adiciones é
No exemplo anterior teríamos 24 adições.
Com 50 cidades teríamos 
27
O problema do Caixeiro Viajante
Um algoritmo “simples” seria verificar todas as rotas e escolher 
a menor delas.
Há rotas possíveis 
a distância total percorrida em cada rota envolve n adições
logo o número de adiciones é
No exemplo anterior teríamos 24 adições.
Com 50 cidades teríamos 
Em um computador que executa adições por segundo
o tempo para resolver o problema seria > séculos.
28
O problema do Caixeiro Viajante
29
Pesquisa Binária
30
Algoritmo de Pesquisa Binária
Binary search algorithm
Binary chop
Parte do presuposto de que o vetor está ordenado e realiza 
sucessivas divisões do espaço de busca:
O elemento procurado (chave) é comparado com o 
elemento do meio do vetor:
Se são iguais, a busca termina com sucesso.
Caso contrário:
Se o elemento do meio vier antes da chave, então a busca continua 
na metade posterior do vetor,
Caso contrário, a busca continua na metade anterior do vetor.
31
Algoritmo de Pesquisa Binária
32
Algoritmo de Pesquisa Binária
Onde esta o erro?
33
Algoritmo de Pesquisa Binária
O algoritmo parte do presuposto de termos o vetor ordenado na forma ascendente.
Existe outro erro?
34
Algoritmo de Pesquisa Binária
Melhor caso: 
Pior caso:
35
Algoritmo de Pesquisa Binária
Melhor caso: 1
Pior caso: log(n)
36
Algoritmo de Pesquisa Binária (versão 2)
Onde está o erro?
37
Algoritmo de Pesquisa Binária (versão 2)
Erro nos índices (do slide anterior)
38
Algoritmo de Pesquisa Binária (versão 2)
39
Recursividade 
Uma função recursiva é aquela que se chama a si mesma (obrigatoriamente)?
40
Recursividade 
Uma função recursiva não necessariamente é aquela que se chama a si mesma
41
Exercícios-Problema (EPs) para esta semana
10696 - Problem A - f91
299 - Train Swapping 
10499 - The Land of Justice 
Data: 07/Julho (segunda-feira) até às 23h50.
Arquivos: 
Para cada exercício-problema deverá submeter:
O código fonte: nome do arquivo → RA_nroDoProblema.cpp
O comprovante de aceitação (Uva) → RA_nroDoProblema.pdf
Exemplo: 10123456_11567.cpp
 10123456_11567.pdf
42
Exercícios-Problema
Use o Toolkit para ter mais exemplos de dados de entrada
http://uvatoolkit.com/problemssolve.php
Teste com o problema 10055 – Hashmat
Resultados Finais do ICPC
http://icpc.baylor.edu/scoreboard/
43
ICPC
Resultados Finais do ICPC
http://icpc.baylor.edu/scoreboard/Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 40
	Slide 41
	Slide 42
	Slide 43

Outros materiais