Você está na página 1de 1

INSTITULO METRÓPOLE DIGITAL - UFRN - Bacharelado em Tecnologia da Informação - LISTA II

IMD0039 - Estruturas de Dados Básicas II Prof: Gabriel Vasiljevic - JAN/2022

1. Quais problemas possuem geralmente complexidade da ordem de logn?


2. O que signica dizer que uma função f(n) é O(g(n))?
3. Considere as funções f(n) e g(n) abaixo. Quando n → ∞, qual função cresce mais rápido? Indique se
f (n) = Ω(g(n)), f (n) = Θ(g(n)) ou f (n) = O(g(n)).

ˆ f(n) = n e g(n) = n

ˆ f(n) = n e g(n) = (logn)5
ˆ f(n) = logn e g(n) = logn2
ˆ f(n) = n2
logn e g(n) = n(logn)2
4. Resolva assintoticamente as seguintes relações de recorrência:
ˆ T (0) = T (1) = T (2) = T (3) = T (4) = Θ(1)
T (n) = T (4) + T (n − 4) + 4
Obs: por simplicidade, você pode assumir que n é múltiplo de 4.
ˆ T (0) = T (1) = Θ(1)
T (n) = 2T (n/2) + n
5. Analise assintoticamente o tempo de execução T(n) do algoritmo abaixo. Não basta colocar as ex-
pressões assintóticas. É necessário justicar como chegou a elas.

1 int leicht(int[] A, int n){


2 int x, int i;
3 if(n < 20) return (A[0]);
4 x = leicht(A, n/4);
5 for(i = n/2; i < (n/2) + 8; i++){
6 x += A[i];
7 }
8 return x;
9 }

6. Analise assintoticamente o tempo de execução T(n) do método LPS_Func abaixo, no pior e no melhor
caso, onde n é o tamanho da string s de entrada. Não basta colocar as expressões assintóticas. É
necessário justicar como chegou a elas.

1 int LPS_func(String s, int i, int j){


2 if(i == j) return 1;
3 if (s[i] == s[j]) return (2 + LPS (s, i+1, j-1) );
4 int alt1 = LPS (s, i, j-1);
5 int alt2 = LPS (s, i+1, j);
6 if (alt2>alt1) return alt2; else return alt1;
7 }
8
9 int LPS (const string & s) {
10 n = s.size();
11 return (LPS (s, 0, n-1);
12 }

Você também pode gostar