Você está na página 1de 3

Atividade 1 - Tarefa sobre Complexidade

Nome: Carlos Antônio Machado da Conceição

R.A. 174.163.326

Estrutura de Dados

1. Escreva os algoritmos, em pseudolinguagem ou em linguagem


computacional (C, Pascal ou Java) para os problemas seguintes e dê a
complexidade de tempo do pior caso em notação assintótica.

a) Cálculo do fatorial de um número inteiro n≥0, onde:

Resp: 0! = 1
1=1
1! =1
1=1
n = n x n (n-1) x (n-2) x, XER

algoritmo “exemplo”
exemplo

escreva “ n x (n-1)”
leia (n-1)
escreva “(n-2)”
leia (n-2)
multiplique n x (n-1) x (n-2) x... x 1

leia “n2

fimdoalgoritmo
b) Determinação do elemento , onde n≥1, da sequência de
Fibonacci, sendo:

Resp: 1,1,2,3,5 – frequência de Fibonacci

Fj = 3,5

2. Ordene a lista de funções a seguir usando a notação assintótica, da


menor para a maior complexidade.

Resp:
2100; √n; 5n; 6nlogn; 3n2; n3; 2n

3. A tabela a seguir exibe, na coluna da esquerda, valores crescentes


para n que correspondem ao tamanho da entrada. As demais colunas
exibem os valores calculados para cada uma das funções assintóticas
respectivamente à entrada de tamanho n, mostrando a diferença na taxa
de crescimento das funções. Com base na tabela, responda: A escolha
de um algoritmo eficiente é crítica em termos de tempo de execução
para que tamanho de entrada? Em que situações algoritmos de
complexidade de tempo ruim podem ser usados?
Resp: Entrada n2

1. Algoritmo int *prefixAverages1 (X)


% Entrada: arranjo X com n≥1 elementos
% Saída: arranjo A com n elementos, tal que A[i] é a média de X[0] ... X[i] {
para (i=0; i<n; i++) faça {
b=0
para (j=0; j≤i; j++) faça {
b=b+X[j] A[i]=b/(i+1) }
} retorne (A)
}
O(n2).

Resp 2): n3 para complexidade de tempo ruim.

Você também pode gostar