"pior caso"

Propaganda
Projeto e Análise de Algoritmos
Tarefa L1
Prof. André Amaral
Pg. 1 de 1
1. Para cada função T(n) e tempo M, estimar o maior tamanho n de um problema que
pode ser resolvido no tempo M, assumindo que o algoritmo para resolver o problema leva
T(n) micro segundos.
M=
lg n
n
n
n lg n
n2
n3
2n
n!
1 segundo
1 minuto 1 hora
1 dia
1 mês
1 ano
1 século
2. Qual é o menor valor de n tal que um algoritmo cujo tempo de execução é 100n2
executa mais rapidamente que um algoritmo cujo tempo de execução é 2n na mesma
máquina?
3. Suponha que estamos comparando implementações dos algoritmos ordenação por
inserção e mergesort na mesma máquina. Para entradas de tamanho n, a ordenação por
inserção executa em 8n2 passos, enquanto o mergesort executa em 64nlgn passos. Para
quais valores de n a ordenação por inserção derrota o mergesort.
4. Considere o problema de pesquisa:
Entrada: Uma seqüência de n números A= < a1, a2,.., an > e um valor v.
Saída: Um índice i tal que v= A[i] ou o valor especial NULO se v não está presente em A.
Escrever pseudo-código para a pesquisa linear, a qual varre toda a seqüência procurando
por v.
a) Quantos elementos da seqüência de entrada precisam ser verificados no pior
caso?
b) Quantos elementos da seqüência de entrada precisam ser verificados na média,
assumindo que o elemento procurado é igualmente provável de ser qualquer
elemento do vetor?
c) Quais são os tempos de execução no pior caso e no caso médio da pesquisa linear
na notação Θ ?
Justifique suas respostas.
Projeto e Análise de Algoritmos
Tarefa L1
Prof. André Amaral
Pg. 2 de 2
5. Considerando o problema de pesquisa do exercício anterior. Observe que se a
seqüência A estiver ordenada, podemos comparar o ponto médio da seqüência com o
valor v e eliminar metade da seqüência de consideração posterior. Pesquisa Binária é um
algoritmo que repete este procedimento de divisão do tamanho da porção restante da
seqüência a cada vez.
a) Escreva um pseudo-código para a busca binária.
b) Determine o tempo de execução no pior caso.
c) Determine o tempo de execução no caso médio.
d) Determine o tempo de execução no melhor caso.
Justifique suas respostas.
6. Suponha que se quer ordenar n elementos contidos em um vetor A, inicialmente,
encontrando-se o menor elemento de A e trocando-o de posição com o elemento A[1].
Em seguida, encontre o segundo menor elemento de A e o troque com o elemento A[2].
Continue desta maneira para os primeiros (n –1) elementos de A.
a) Escreva um pseudo-código para este algoritmo, o qual é conhecido como
ordenação por seleção.
b) Por que este algoritmo só precisa ser executado para os primeiros (n – 1)
elementos, e não para todos os n elementos.
c) Determine o tempo de execução no pior caso.
d) Determine o tempo de execução no caso médio.
e) Determine o tempo de execução no melhor caso.
Justifique suas respostas.
Download