Buscar

Exercicios de Fixação 01 - Conceitos Fundamentais - Parte I

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
Lista de Exercícios de Fixação 01
Conceitos Fundamentais – Parte I
1. Um algoritmo é executado em 10 segundos para uma entrada de tamanho 50. Se o algoritmo
é quadrático, quanto tempo em segundos ele gastaria, aproximadamente, no mesmo
computador, se a entrada tiver tamanho 100? 
2. Considere o algoritmo a seguir e responda as perguntas que seguem, fornecendo
justificativas:
algoritmo enigma(n, ref A)
entrada: um número natural n e uma referência para o vetor A com n valores reais
saída: não revelada
   para i de 1 a n­1 faca
      k   i←
      para j de i+1 a n faca
       se (A[j] < A[i]) entao
k   j←
fimse
 fimpara
      troca(A[k], A[i])
   fimpara
fimalgoritmo
a. Supondo que a função troca() faz a troca de valores de seus 2 argumentos, o que o
algoritmo enigma faz?
b. Caracterize as instâncias de pior caso do algoritmo.
3. Um problema algorítmico está definido quando estabelecemos os seguintes três aspectos: o
conjunto de entradas; o conjunto de saídas válidas; e, finalmente, a relação entre cada
entrada e suas correspondentes saídas válidas. Todos os demais aspectos são irrelevantes,
1
 ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
pois as medidas de eficiência O,  e  não dependem de constantes multiplicativas
associadas ao artefato computacional. É correta tal afirmação? Justifique.
4. Ordene as funções, a seguir, por sua taxa assintótica de crescimento.
4nlgn + 2n 210 2lgn
3n + 100nlgn 4n 2n
n2 + 10n n3 nlgn
5. É verdade que 1/2n2 é O(n)? Justifique.
6. Qual das seguintes afirmações sobre crescimento assintótico de funções não é verdadeira?
a) 2n2 + 3n + 1 é O(n2)
b) Se f(n) é O(g(n)) então g(n) é O(f(n))
c) lgn2 é O(lgn)
d) Se f(n) é O(g(n)) e g(n) é O(h(n)) então f(n) é O(h(n))
e) 2n+ 1 é O(2n)
7. Critique a afirmação 'n2 – 100n está O(n2) para todo n ≥100'.
8. Mostre que lgn não está em (n).
9. Mostre que n(n + 1)/2 e n(n – 1)/2 estão em (n2).
10. Quais das seguintes igualdades são verdadeiras?
2
 ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
I. n2 = o(n3)
II. 2n + 1 = o(n2)
III. n3 = o(n2)
IV. 3n + 5nlgn = o(n)
V. lgn + n1/2= o(n)
a) somente I e II
b) somente II, III e IV
c) somente III, IV e V
d) somente I, II e V
e) somente I, III e IV
11. Sejam duas funções f(n) que mapeiam números inteiros positivos em números reais
positivos. Com respeito às notações assintóticas de complexidade, avalie as afirmações a
seguir.
I. Diz-se que f(n) é O(g(n)) se existe uma constante real c > 0 e existe uma constante inteira
n0 ≥ 1 tal que f(n) ≤ cg(n) para todo inteiro n ≥ n0
II. Diz-se que f(n) é o(g(n)) se para toda constante real c > 0 existe uma constante inteira n0
≥ 1 tal que f(n) < cg(n) para todo inteiro n ≥ n0 
III. Diz-se que f(n) é (g(n)) se existe uma constante real c > 0 e existe uma constante
inteira n0 ≥ 1 tal que f(n) ≥ cg(n) para todo inteiro n ≥ n0 
IV. Diz-se que f(n) é (g(n)) se para toda constante real c > 0 existe uma constante inteira n0
≥ 1 tal que f(n) > cg(n) para todo inteiro n ≥ n0 
V. Diz-se que f(n) é (g(n)) se, e somente se, f(n) é O(g(n)) e f(n) é (g(n))
A análise permite concluir que
a) todas as afirmativas são falsas
3
 ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
b) todas as afirmativas são verdadeiras
c) apenas as afirmativas I e III são verdadeiras
d) apenas as afirmativas II e IV são verdadeiras
e) apenas a afirmativa V é falsa
12. Alice e Bob estão discutindo sobre seus algoritmos. Alice afirma que seu método de tempo
O(nlgn) é sempre mais rápido que o método de Bob de tempo O(n2). Para decidir a questão,
eles executaram um conjunto de experimentos. Para o espanto de Alice, eles encontraram
que se n < 100, o algoritmo O(n2) executa mais rápido, e somente quando n ≥ 100 é o
algoritmo O(nlgn) é um pouco melhor. Explique como isso é possível.
13. Suponha que dois algoritmos, A e B, resolvem o mesmo problema, para um tamanho de
instâncias dado por n. Em quais dos seguintes casos podemos afirmar que A é mais rápido
que B? Justifique. 
a) Caso 1: A consome tempo O(lgn) no pior caso e B consome tempo O(n3) no pior caso;
b) Caso 2: A consome O(nlgn) unidades de tempo no pior caso e B consome (n2) unidades
de tempo pior caso;
c) Caso 3: No pior caso, A consome O(n2) unidades de tempo e B consome (n2lgn)
unidades de tempo.
14. Observe as funções representadas no gráfico, a seguir.
4
 ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
Indique a alternativa falsa sobre o crescimento assintótico dessas funções:
a) f(n) = O(h(n)) e i(n) = (g(n))
b) f(n) = (h(n)) e i(n) = (h(n))
c) g(n) = O(i(n)) e h(n) = (g(n))
d) g(n) = O(i(n)), i(n) = O(f(n)) e, portanto, g(n) = O(f(n))
e) h(n) = (i(n)), logo, i(n) = O(h(n))
15. Considere dois algoritmos A1 e A2, cujas funções de custo são, respectivamente, T1(n) = n2 –
n + 1 e T2(n) = 6nlgn + 2n. Para simplificar a análise, assuma que n > 0 é sempre uma
potência de 2. Com relação ao enunciado, indique a alternativa correta. 
a) Como T1(n) = (n2) e T2(n) = (nlgn), então A2 é sempre mais eficiente que A1
b) O limite superior T1(n) = O(n3) é correto assintoticamente restrito
c) O limite inferior T2(n) = (n3) é correto e assintoticamente restrito
d) T1 e T2 são assintoticamente equivalentes
5
 ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
e) A1 é mais eficiente que A2, para n suficientemente pequeno
16. Sejam T1(n) = 100n + 15, T2(n) = 10n2 + 2n e T3(n) = 0,5n3 + n2 + 3 as equações que
descrevem a complexidade de tempo dos algoritmos Alg1, Alg2 e Alg3, respectivamente,
para entradas de tamanho n. A respeito da ordem de complexidade desses algoritmos, pode-
se concluir que
a) as complexidades assintóticas estão, respectivamente, em O(n), O(n2) e O(n3)
b) as complexidades assintóticas estão, respectivamente, em O(n), O(n2) e O(n2)
c) as complexidades assintóticas estão, respectivamente, em O(100), O(10) e O(0,5)
d) Alg2 e Alg3 pertencem as mesmas classes de complexidade assintótica
e) Alg1 e Alg2 pertencem as mesmas classes de complexidade assintótica
17. Em relação ao limite assintótico de notação O, atribua V (verdadeiro) ou F (falso) às
afirmativas a seguir.
( ) Em uma estrutura de laço duplamente aninhado, tem-se imediatamente um limite
superior O(n2)
( ) Em uma estrutura de laço duplamente aninhado, o custo de cada iteração do laço interno
é de limite superior O(1)
( ) Em uma estrutura de laço triplamente aninhado, o custo de cada iteração do laço interno
é de limite superior O(n3)
( ) O limite O(n2) para o tempo de execução do pior caso de execução aplica-se para
qualquer entrada
( ) f(n) = O(g(n)) é uma afirmação de que algum múltiplo constante de g(n) é de limite
assintótico inferior
Indique a alternativa que contém, de cima para baixo, a sequência correta.
a) V, V, F, V, F
6
 ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
b) V, F, V, F, V
c) F, V, V, F, F
d) F, F, V, V, F
e) F, F, F, V, V
18. Considere o problema de encontrar o maior e o menor elemento de um vetor de inteiros
A[1..n], n > 0. O algoritmo simples para resolver este problema pode ser derivado do
Programa, a seguir.
Programa – Implementação direta para obter o máximo e o mínimo de um conjunto
procedure MaxMin1 (var A: Vetor; var Max, Min: integer);
var i: integer;
begin
Max := A[1]
Min := A[1]
for i := 2 to n do
begin
if A[i] > Max then Max := A[i];
if A[i] < Min then Min := A[i];
end;
end.
Seja f uma função de complexidade talque f(n) é número de comparações entre os elementos de A,
se A contiver n elementos. Portanto, f(n) = 2(n-1), para n>0.
Faça a análise de complexidade para o melhor caso, pior caso e caso médio do programa
apresentado.
19. Bill dispõe de um algoritmo, encontre2D, para encontrar um elemento x em um arranjo Anxn.
O algoritmo encontre2D itera sobre s linhas de A e chama o algoritmo encontreArray, do
trecho de código abaixo, para cada linha, até que x seja encontrado ou todas as linhas de A
7
 ANÁLISE DE ALGORITMOS
Bacharelado em Ciência da Computação
tenham sido pesquisadas.
algoritmo encontreArray(x, A): 
Entrada: Um elemento x e um arranjo A com n elementos 
Saída: O índice i tal que x = A[i], ou ­1 se nenhum elemento de A é igual a x 
i = 0; 
enquanto i < n faça 
se x = A[i] então 
retorna i
senão i = i + 1
retorna ­1 
Qual o tempo para o pior caso de encontre2D em termos de n? Qual o tempo para o pior caso de
encontre2D em termos de N, onde N é o tamanho total de A? É correto dizer que encontre2D é um
algoritmo de tempo linear? Justifique.
20. Considere o código, a seguir.
void ordena (int n, int* v){
int i,j;
for (i=n­1; i>=1; i­­)
          for (j=0; j<i; j++)
            if (v[j]>v[j+1]){ /*troca*/
int temp = v[j];
v[j] = v[j+1];
v[j+1] = temp;
}
}
Apresente a análise da complexidade de tempo para o melhor, pior e médio caso. Especifique, para
tanto, o que caracteriza cada caso. 
8
	Lista de Exercícios de Fixação 01

Continue navegando