da primeira lista de exercícios

Propaganda
1
EXERCÍCIOS SOBRE ANÁLISE DE ALGORITMOS
1a QUESTÃO
Dizer se as afirmativas abaixo são verdadeiras ou falsas, justificando.
1. Seja uma árvore binária de busca de tamanho n. A complexidade de um algoritmo para
fazer uma cópia dessa árvore em memória é de O(n).
2. Seja uma pilha cujos elementos são ponteiros para uma fila de tamanho n. A
complexidade de um algoritmo para inserção de um elemento na fila é de O(n).
2a QUESTÃO
Determine os tempos de processamento conforme o modelo detalhado e simplificado para os
trechos de programas a seguir:
a.
b.
c.
d.
for (int i = 0; i < n; ++i) ++k;
for (int i = 1; i < n; i *= 2) ++k;
for (int i = n - 1; i != 0; i /=2) ++k;
for (int i = 0; i < n; ++i) if (i % 2== 0) ++k;
3a QUESTÃO
Diga e justifique qual é a complexidade de pior caso dos algoritmos mostrados abaixo:
ALGORITMO A
for i := 1 to n do
for j := 1 to m do
for k := 1 to n do
A[i,j] := A[i,j] + k;
ALGORITMO B
for i := 1 to n do
j := i;
while j = i do
A[i,j] := A[i,j] + 2;
if i >= n/2 then j := j +
1;
4a QUESTÃO
Escrever as funções abaixo com a mínima notação O.
a) n3 – n2
b) n + logn
c) (n + 4)2
d) 4 + n(n/2)
5a QUESTÃO
Considere a função f(n) = 3n2 – n + 4. Mostre que f(n) = O(n2), usando a definição.
6a QUESTÃO
Considere as funções f(n) = 3n2 – n + 4 e g(n) = nlogn + 5. Usando o teorema 3.2, mostre que
f(n) + g(n) = O (n2).
2
7a QUESTÃO
Diga e justifique qual é a complexidade de pior caso dos algoritmos mostrados abaixo:
ALGORITMO A
long int aux;
for ( long int i=0; i <= tam-2; i++ )
{
for ( long int j=0; j<= tam-2-i; j++ )
{
if ( Array[j] > Array[j+1] )
{
aux
= Array[j];
Array[j]
= Array[j+1];
Array[j+1] = aux;
}
}
}
ALGORITMO B
Para i := 1 até n faça
Ler nome[i];
Fim_para;
Ordenar nome[] pelo algoritmoA;
ALGORITMO C
Para i := 1 até n faça
Para j := n até 0 com passo –n/2 faça
V[j] := 3*i;
Fim_para;
Fim_para;
ALGORITMO D
Para i := 1 até n faça
Para j := m até 1 com passo -1 faça
Imprimir A[i,j];
Fim_para;
Fim_para;
Download