Questões do POSCOMP sobre Complexidade de Algoritmos #05

Por
|

As questões desta postagem são das provas do POSCOMP 2013, 2015 e 2016 sobre Complexidade de Algoritmos.

POSCOMP 2013

A questão a seguir é da prova do ano 2013.

Questão 33

Considere o algoritmo a seguir.

MERGESORT(V, i, j)
(1) Se (i<j) então
(2)    m = (i+j)/2;
(3)    MERGESORT(v, i, m);
(4)    MERGESORT(v, m+1, j);
(5)    MESCLAR(v, i, m, j);
(6) Fim;

Sobre o comportamento assintótico do algoritmo de ordenação Merge Sort, assinale a alternativa que apresenta, corretamente, sua complexidade.

  • (A) $O(\log n)$
  • (B) $O(n\log n)$
  • (C) $O(n^2)$
  • (D) $O(n^3)$
  • (E) $O(2^n)$
Resolução

A questão poderia ser resumida em "qual é a complexidade assintótica do Merge Sort?". O Merge Sort tradicional tem complexidade $O(n \log n)$ em qualquer caso, que é a complexidade que está em B.

POSCOMP 2015

As questões a seguir são do ano 2015.

Questão 22

Quais destes algoritmos de ordenação têm a classe de complexidade assintótica, no pior caso, em $O(n\log n)$?

  • (A) QuickSort, MergeSort, e HeapSort
  • (B) QuickSort e SelectionSort
  • (C) MergeSort e HeapSort
  • (D) QuickSort e BubbleSort
  • (E) QuickSort, MergeSort e SelectionSort
Resolução

Basta lembra que o pior caso do Quicksort é O(n²), pois só isso já elimina as alternativas A, B, D e E, restando apenas a alternativa C, que é a correta.

Questão 25

Sejam $T_1(n)=100n+15$, $T_2(n)=10n^2+2n$ e $T_3(n)=0,5n^3+n^2+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 de Alg1, Alg2 e Alg3 estão, respectivamente, em $O(n)$, $O(n^2)$ e $O(n^3)$.
  • (B) as complexidades assintóticas de Alg1, Alg2 e Alg3 estão, respectivamente, em $O(n)$, $O(n^2)$ e $O(n^2)$.
  • (C) as complexidades assintóticas de Alg1, Alg2 e Alg3 estão, respectivamente, em $O(100)$, $O(10)$ e $O(0,5)$.
  • (D) Alg2 e Alg3 pertencem às mesmas classes de complexidade assintótica.
  • (E) Alg1 e Alg2 pertencem às mesmas classes de complexidade assintótica.
Resolução

$T_1(n)$ é $O(n)$, $T_2(n)$ é $O(n^2)$ e $T_3(n)$ é $O(n^3)$, pois são, respectivamente, polinômios de primeiro, segundo e terceiro grau.

Dessa forma, a alternativa correta é a A.

POSCOMP 2016

As questões a seguir são do ano 2016.

Questão 21

Um algoritmo tem complexidade $O(3m^3+2mn^2+n^2+10m+m^2)$. Uma maneira simplificada de representar a complexidade desse algoritmo é:

  • (A) $O(m^3 + mn^2)$.
  • (B) $O(m^3)$.
  • (C) $O(m^2)$.
  • (D) $O(mn^2)$.
  • (E) $O(m^3+n^2)$.
Resolução

Como são duas variáveis, então devemos considerar o maior termo de cada variável. Para a variável $m$, o maior termo é $3m^3$, que é $O(m^3)$. Já o maior termo na variável $n$ é $2mn^2$, que é $O(mn^2)$. Somando ambos, obtemos

$$O(m^3)+O(mn^2)=O(m^3+mn^2)$$

Portanto, a alternativa correta é a A.

Observação: apesar de $n^2$ ser quadrático em $n$, assim como $2mn^2$, ele é inferior a este último por causa da ausência da variável $m$.

Questão 22

O tempo de execução $T(n)$ de um algoritmo, em que $n$ é o tamanho da entrada, é dado pela equação de recorrência $T(n) = 8T(n/2)+q*n$ se $n > 1$. Dado que $T(1) = p$, e que $p$ e $q$ são constantes arbitrárias, a complexidade do algoritmo é:

  • (A) $O(n)$.
  • (B) $O(n \log n)$.
  • (C) $O(n^2)$.
  • (D) $O(n^3)$.
  • (E) $O(n^n)$.
Resolução

A equação pode ser resolvida via teorema mestre, pois a mesma possui a forma

$$T(n)=aT(n/b)+f(n)$$

No caso,

$$a=8,\quad b=2, \quad f(n)=qn$$

Resolvendo, temos

$$\log_2 8=3$$

Como $f(n)$ é assintoticamente inferior a $n^3$, então $T(n)=\Theta(n^3)$. Consequentemente, $T(n)=O(n^3)$, portanto a alternativa correta é a D.

Postagens Relacionadas

Questões do POSCOMP sobre Complexidade de Algoritmos #04

Questões do POSCOMP sobre Complexidade de Algoritmos #06

Aplicativos para Estudar para o POSCOMP

Acesse a tag do blog para ver mais postagens sobre a prova.

Siga o blog por e-mail

Receba notificações de novas postagens e novidades do blog por e-mail.

Importante: utilize o bom senso na hora de comentar. Acesse a política de privacidade para maiores informações sobre comentários.

Nenhum comentário:

Postar um comentário