Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Construção e Análise de Algoritmos - Lista de exercícios 1, Notas de estudo de Análise de Sistemas de Engenharia

Universidade Federal do Ceará Centro de Ciências Departamento de Computação Mestrado e Doutorado em Ciência da Computação

Tipologia: Notas de estudo

2010

Compartilhado em 14/02/2010

ednaldo-miranda-6
ednaldo-miranda-6 🇧🇷

4

(1)

38 documentos

1 / 2

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal do Cear´a
Centro de Ciˆencias
Departamento de Computa¸ao
Mestrado e Doutorado em Ciˆencia da Computa¸ao
Constru¸ao e An´alise de Algoritmos
Lista de exerc´ıcios 1
1. Prove as seguintes afirma¸oes sobre nota¸ao assint´otica:
n3/100 25n2100n+ 7 ´e Ω(n2) e Θ(n3)
77n313n2+ 29n5 ´e O(n4) e Ω(n3)
34n log7n2+ 13n´e Ω(n) e O(n2)
2. Resolva as seguintes equa¸oes de recorrˆencia segundo o etodo da ´arvore de recurs˜ao:
T(n)=2·T(n/3) + n
T(n)=3·T(n/3) + n
T(n)=4·T(n/3) + n
T(n)=8·T(n/3) + n2
T(n)=9·T(n/3) + n2
T(n) = 10 ·T(n/3) + n2
T(n) = T(0.99 ·n) + n
T(n) = T(0.99 ·n) + 7
T(n) = a·T(n1/a) + logb(n), onde aebao inteiros maiores que 1
3. O algoritmo do kesimo ınimo ainda seria Θ(n) se tom´assemos grup os de 3 elementos, ao inv´es de 5?
E se tom´assemos grupos de 7 elementos? Justifique usando o etodo da ´arvore de recurs˜ao.
4. Uma pessoa sobe uma escada composta de ndegraus, com passos que podem alcan¸car entre 1 e kn
degraus. Escrever equa¸oes de recorrˆencia que permitem determinar o umero de modos distintos da pessoa
subir a escada.
5. Elabore um algoritmo para resolver o seguinte problema: dado um vetor com numeros inteiros
positivos e um outro umero inteiro positivo x, determine se existem ou ao dois elementos cuja soma ´e
igual a x(dica: divis˜ao e conquista).
6. Elabore um algoritmo O(n) de decomposi¸ao de um vetor Sem trˆe subvetores. Esse algoritmo recebe
como entrada, al´em do vetor S, um valor piv pertencente a S, e os ´ındices per, 1 pr. O algoritmo deve
rearrumar os elementos em S[p...r] e retornar dois ´ındices q1eq2satisfazendo as seguintes propriedades:
pf2

Pré-visualização parcial do texto

Baixe Construção e Análise de Algoritmos - Lista de exercícios 1 e outras Notas de estudo em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

Universidade Federal do Cear´a Centro de Ciˆencias Departamento de Computa¸c˜ao Mestrado e Doutorado em Ciˆencia da Computa¸c˜ao

Constru¸c˜ao e An´alise de Algoritmos

Lista de exerc´ıcios 1

  1. Prove as seguintes afirma¸c˜oes sobre nota¸c˜ao assint´otica:
    • n^3 / 100 − 25 n^2 − 100 n + 7 ´e Ω(n^2 ) e Θ(n^3 )
    • 77 n^3 − 13 n^2 + 29n − 5 ´e O(n^4 ) e Ω(n^3 )
    • 34 n log 7 n^2 + 13n ´e Ω(n) e O(n^2 )
  2. Resolva as seguintes equa¸c˜oes de recorrˆencia segundo o m´etodo da ´arvore de recurs˜ao:
    • T (n) = 2 · T (n/3) + n
    • T (n) = 3 · T (n/3) + n
    • T (n) = 4 · T (n/3) + n
    • T (n) = 8 · T (n/3) + n^2
    • T (n) = 9 · T (n/3) + n^2
    • T (n) = 10 · T (n/3) + n^2
    • T (n) = T (0. 99 · n) + n
    • T (n) = T (0. 99 · n) + 7
    • T (n) = a · T (n^1 /a) + logb(n), onde a e b s˜ao inteiros maiores que 1
  3. O algoritmo do k-´esimo m´ınimo ainda seria Θ(n) se tom´assemos grupos de 3 elementos, ao inv´es de 5? E se tom´assemos grupos de 7 elementos? Justifique usando o m´etodo da ´arvore de recurs˜ao.
  4. Uma pessoa sobe uma escada composta de n degraus, com passos que podem alcan¸car entre 1 e k ≤ n degraus. Escrever equa¸c˜oes de recorrˆencia que permitem determinar o n´umero de modos distintos da pessoa subir a escada.
  5. Elabore um algoritmo para resolver o seguinte problema: dado um vetor com n n´umeros inteiros positivos e um outro n´umero inteiro positivo x, determine se existem ou n˜ao dois elementos cuja soma ´e igual a x (dica: divis˜ao e conquista).
  6. Elabore um algoritmo O(n) de decomposi¸c˜ao de um vetor S em trˆe subvetores. Esse algoritmo recebe como entrada, al´em do vetor S, um valor piv pertencente a S, e os ´ındices p e r, 1 ≤ p ≤ r. O algoritmo deve rearrumar os elementos em S[p... r] e retornar dois ´ındices q 1 e q 2 satisfazendo as seguintes propriedades:

(a) se p ≤ k ≤ q 1 , ent˜ao S[k] < piv;

(b) se q 1 < k ≤ q 2 , ent˜ao S[k] = piv;

(c) se q 2 < k ≤ r, ent˜ao S[k] > piv.

  1. Sejam X[1... n] e Y [1... n] dois vetores ordenados. Escreva um algoritmo Θ(log n) para encontrar a mediana de todos os 2n elementos nos vetores X e Y. Prove esta complexidade.

  2. Seja X[1... n] um vetor de inteiros. Dados i < j em { 1 ,... , n}, dizemos que (i, j) ´e uma invers˜ao de X se X[i] > X[j]. Escreva um algoritmo Θ(n log n) que devolva o n´umero de invers˜oes em um vetor X.

  3. Elabore um algoritmo Θ(n log n) que, dado um vetor S com n > 0 elementos, retorna um vetor V de tamanho n com a seguinte propriedade: V [i] ´e o n´umero de ocorrˆencias de S[i] em S. Prove esta complexidade.

  4. Altere o algoritmo HeapSort para trabalhar com Heaps m´ınimos, ao inv´es de Heaps m´aximos. Argumente porque ´e melhor trabalhar com Heaps m´aximos ao inv´es de Heaps m´ınimos.

  5. Prove usando loops invariantes que o algoritmo HeapSort e seu algoritmo da quest˜ao anterior est˜ao corretos (dica: para cada algoritmo, prove a corre¸c˜ao do pr´e-processamento e depois a parte final).