Sei sulla pagina 1di 2

Pontifícia Universidade Católica de Goiás

Escola de Ciências Exatas e de Computação


Projeto e Análise de Algoritmos – CMP1065
Exercícios

1. Dois algoritmos A e B possuem complexidade n5 e 2n ,respectivamente. Você utilizaria o


algoritmo B ao invés do A. Em qual caso? Exemplifique.
2. Para duas funções g(n) e f(n) temos que f(n)=”teta”(n) se somente se f(n)= Ω(g(n)) e
f(n)=O(g(n)). Explique o teorema acima.
3. Podemos definir o seguinte algoritmo para calcular a ordem de complexidade de algoritmos
não recursivos:
I. Escolher o parâmetro que indica o tamanho da entrada
II. Identificar a operação básica (comparação, atribuição)
III. Estabeleça uma soma que indique quantas vezes sua operação básica foi executada
(pio caso)
IV. Utilize regras para manipulação de soma e fórmulas definindo uma função de
complexidade
V. Encontre a ordem de complexidade

a) Baseando-se no algoritmo acima determine a ordem de complexidade do algoritmo abaixo:

MaxMin(vetor v)
max=v[1];
min=v[1];
para i=2 até n faça
se v[1]> max então max=v[1]; fimse
se v[1]< min então min=v[1]; fimse
fimpara;
fim.
b) Podemos dizer que o algoritmo acima é O(n2 )? Justifique.

4. Prove que:

𝑛 𝑖

∑ ∑ 𝑗 = 𝜃(𝑛3 )
𝑖=1 𝑗=1

5. Considere o seguinte algoritmo recursivo, cujo argumento n é um número inteiro positivo.

Asterisco(n)
1 se n>0
2 então Asterisco(n-1)
3 Para i<-1 até n faça
4 Imprima “*”
5 Asterisco(n-1)
6. O Algoritmo abaixo (Multiplicação de matrizes) tem como entrada Duas matrizes A = (aij ) ∈
Rm×n, B = (bjk) ∈ Rn×o .
Saída: O produto C = (cik) = AB ∈ Rm×o .
1 for i := 1, . . . , m do
2 for k := 1, . . . , o do
3 cik := 0
4 for j := 1, . . . , n do
5 cik := cik + aij bjk
6 end for
7 end for
8 end for

7. Escreva as funções e faça análise da complexidade dos 3 algoritmos de ordenação listados


abaixo, informando a complexidade no pior caso, caso médio e melhor caso.
a. Insertion Sort
b. Selection Sort
c. Bubble Sort

Potrebbero piacerti anche