Apostilas de Geometria Computacional Lista 1, Notas de estudo de Aplicações de Ciências da Computação. Universidade Federal de Alagoas (UFAL)
Salamaleque
Salamaleque

Apostilas de Geometria Computacional Lista 1, Notas de estudo de Aplicações de Ciências da Computação. Universidade Federal de Alagoas (UFAL)

1 página
1Números de download
875Número de visitas
100%de 1 votosNúmero de votos
1Número de comentários
Descrição
Apostilas de Ciência da Computação da Universidade de São Paulo, Geometria Computacional, Análise de Algoritmos, Exercícios Lista 1
20 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização1 página / 1
Baixar o documento
l1.dvi

MAC 338 - Análise de Algoritmos

Departamento de Ciência da Computação

Primeiro semestre de 2013

Lista 1

1. Usando a definição de notação O, prove que

(a) n2 + 10n + 20 = O(n2)

(b) ⌈n/3⌉ = O(n) (c) lg n = O(log10 n)

(d) n = O(2n)

(e) n/1000 não é O(1)

(f) n2/2 não é O(n)

(Lembre-se que lg n denota o logaritmo na base 2 de n.)

2. Prove ou dê um contra-exemplo para as afirmações abaixo:

(a) lg √

n = O(lg n)

(b) Se f(n) = O(g(n)) e g(n) = O(h(n)) então f(n) = O(h(n)).

(c) Se f(n) = O(g(n)) e g(n) = Θ(h(n)) então f(n) = Θ(h(n)).

(d) Suponha que lg(g(n)) > 0 e que f(n) ≥ 1 para todo n suficientemente grande. Neste caso, se f(n) = O(g(n)) então lg(f(n)) = O(lg(g(n))).

(e) Se f(n) = O(g(n)) então 2f(n) = O(2g(n)).

3. Prove que (a)

∑n i=1 i

k é Θ(nk+1) (b) ∑n

i=1 i 2i

≤ 2.

4. Resolva as recorrências abaixo.

(a) T (n) = 2T (⌊n/2⌋) + Θ(n2) (b) T (n) = 8T (⌊n/2⌋) + Θ(n2) (c) T (n) = 2T (⌊n/2⌋) + Θ(n3) (d) T (n) = 7T (⌊n/3⌋) + Θ(n2) (e) T (n) = T (⌊9n/10⌋) + Θ(n)

5. Escreva um algoritmo eficiente que busca um valor x em uma matriz Am×n cujas linhas e colunas estão ordenadas em ordem não-decrescente.

6. Escreva um algoritmo que ordena uma lista de n itens dividindo-a em três sublistas de aproximadamente n/3 itens, ordenando cada sublista recursivamente e intercalando as três sublistas ordenadas. Analise seu algoritmo concluindo qual é o seu consumo de tempo.

7. Sejam X[1 . . n] e Y [1 . . n] dois vetores, cada um contendo n números ordenados. Escreva um algoritmo O(lg n) para encontrar uma das medianas de todos os 2n elementos nos vetores X e Y .

8. Seja X[1 . . n] um vetor de inteiros e i e j dois ı́ndices distintos de X, ou seja, i e j são inteiros entre 1 e n. Dizemos que o par (i, j) é uma inversão de X se i < j e X[i] > X[j]. Escreva um algoritmo O(n lg n) que devolva o número de inversões em um vetor X, onde n é o número de elementos em X.