Logo Passei Direto

Ferramentas de estudo

Solved questions

Material
Study with thousands of resources!

Solved questions

Text Material Preview

Big Theta 
O que a notacao Big Theta (
) representa no contexto da analise de algoritmos?
a) A complexidade no pior caso de um algoritmo
b) A complexidade no melhor caso de um algoritmo
c) A complexidade assintotica de um algoritmo
d) A complexidade no caso medio de um algoritmo
Resposta correta: c) A complexidade assintotica de um algoritmo
Explicacao: A notacao Big Theta descreve uma relacao assintotica entre a complexidade de um
algoritmo, representando tanto o limite superior quanto inferior da funcao de tempo ou espaco. Isso
significa que, se um algoritmo tem complexidade
(f(n)), sua performance estara dentro de
f(n) para grandes valores de
n, sem ser nem muito maior nem muito menor.
Qual e a principal diferenca entre as notacoes Big O (
O) e Big Theta (
)?
a) A notacao Big O e mais precisa que a Big Theta
b) A notacao Big O define um limite inferior e a Big Theta define um limite superior
c) A notacao Big Theta descreve um limite superior e inferior, enquanto a Big O apenas descreve o
limite superior
d) A notacao Big Theta e usada apenas para algoritmos recursivos
Resposta correta: c) A notacao Big Theta descreve um limite superior e inferior, enquanto a Big O
apenas descreve o limite superior
Explicacao: A notacao Big O fornece um limite superior para a complexidade de um algoritmo, ou
seja, um limite maximo de tempo ou espaco. Ja a notacao Big Theta estabelece tanto um limite
superior quanto inferior, fornecendo uma estimativa mais precisa da complexidade do algoritmo em
termos de uma funcao assintotica.
Se a complexidade de um algoritmo e expressa como
f(n)=(n
2
), o que isso significa?
a) O tempo de execucao do algoritmo cresce linearmente com o tamanho da entrada
b) O tempo de execucao do algoritmo cresce quadraticamente com o tamanho da entrada
c) O tempo de execucao do algoritmo cresce exponencialmente com o tamanho da entrada
d) O tempo de execucao do algoritmo cresce logaritmicamente com o tamanho da entrada
Resposta correta: b) O tempo de execucao do algoritmo cresce quadraticamente com o tamanho da
entrada
Explicacao: Quando dizemos que a complexidade de um algoritmo e
f(n)=(n
2
), isso significa que, para entradas de tamanho
n, o tempo de execucao do algoritmo cresce de forma quadratica. Em termos de grandes
n, o tempo de execucao e aproximadamente proporcional a
n
2
.
Em relacao a notacao Big Theta, qual e a definicao formal?
a) Se
f(n)=O(g(n)), entao
f(n) e limitado superiormente por
g(n)
b) Se
f(n)=(g(n)), entao existem constantes
c
1
,
c
2
e
n
0
tais que
c
1
g(n)f(n)c
2
g(n) para todo
nn
0
c) Se
f(n)=(g(n)), entao
f(n) e limitado inferiormente por
g(n)
d) Se
f(n)=(g(n)), entao
f(n) cresce mais rapidamente que
g(n)
Resposta correta: b) Se
f(n)=(g(n)), entao existem constantes
c
1
,
c
2
e
n
0
tais que
c
1
g(n)f(n)c
2
g(n) para todo
nn
0
Explicacao: A definicao formal de Big Theta implica que existem constantes
c
1
,
c
2
e
n
0
que garantem que
f(n) esta "encaixada" entre
c
1
g(n) e
c
2
g(n) para valores suficientemente grandes de
n, o que significa que o comportamento assintotico de
f(n) e semelhante ao de
g(n).
Qual das seguintes expressoes representa um exemplo de complexidade que e
(nlogn)?
a) Algoritmos de busca binaria
b) Algoritmos de ordenacao por selecao
c) Algoritmos de ordenacao rapida (QuickSort) no melhor caso
d) Algoritmos de ordenacao por bolha
Resposta correta: c) Algoritmos de ordenacao rapida (QuickSort) no melhor caso
Explicacao: O algoritmo QuickSort, no melhor caso, tem complexidade
(nlogn), pois a divisao das partes do array em cada recursao ocorre de forma balanceada,
resultando em uma profundidade de recursao logaritmica, com o trabalho realizado em cada nivel
sendo linear.
Quando dizemos que um algoritmo tem complexidade
(1), o que isso implica?
a) O algoritmo tem tempo de execucao constante, independentemente do tamanho da entrada
b) O algoritmo tem tempo de execucao linear em relacao ao tamanho da entrada
c) O algoritmo tem tempo de execucao quadratico em relacao ao tamanho da entrada
d) O algoritmo tem tempo de execucao logaritmico em relacao ao tamanho da entrada
Resposta correta: a) O algoritmo tem tempo de execucao constante, independentemente do
tamanho da entrada
Explicacao: A complexidade
(1) significa que o tempo de execucao do algoritmo nao depende do tamanho da entrada. Isso
implica que o algoritmo realiza o mesmo numero de operacoes independentemente de
n, ou seja, o tempo e constante.
Em termos de notacao Big Theta, como podemos classificar um algoritmo que tem um tempo de
execucao de
f(n)=3n+5?
a)
(n)
b)
(n
2
)
c)
(logn)
d)
(1)
Resposta correta: a)
(n)
Explicacao: Embora a expressao
3n+5 tenha um termo constante, sua complexidade assintotica e linear. Isso porque, para grandes
n, o termo
3n domina o crescimento da funcao, o que a classifica como
(n).
Qual das seguintes afirmativas e verdadeira em relacao a notacao Big Theta?
a) A notacao Big Theta e util para expressar o pior caso de um algoritmo, mas nao o melhor caso
b) A notacao Big Theta descreve a complexidade em termos do melhor e pior caso, fornecendo
uma analise mais precisa
c) A notacao Big Theta e usada apenas para analise de algoritmos recursivos
d) A notacao Big Theta nao tem relacao com a complexidade assintotica de um algoritmo
Resposta correta: b) A notacao Big Theta descreve a complexidade em termos do melhor e pior
caso, fornecendo uma analise mais precisa
Explicacao: A notacao Big Theta e usada para representar a complexidade de um algoritmo no
melhor e no pior caso, ou seja, oferece uma analise mais precisa da performance do algoritmo em
termos assintoticos. Isso ajuda a entender o comportamento do algoritmo para grandes entradas.
Qual das opcoes abaixo e uma funcao assintotica que descreve o comportamento de um algoritmo
de busca binaria?
a)
(n)
b)
(logn)
c)
(n
2
)
d)
(nlogn)
Resposta correta: b)
(logn)
Explicacao: A busca binaria tem complexidade
(logn), pois a cada iteracao, a busca reduz pela metade o tamanho do problema. Isso faz com que
a profundidade da arvore de decisoes seja logaritmica em relacao ao tamanho da entrada.
Se temos um algoritmo com complexidade
(n
3
), qual seria o comportamento do algoritmo para entradas muito grandes de
n?
a) O tempo de execucao cresce linearmente
b) O tempo de execucao cresce quadraticamente
c) O tempo de execucao cresce cubicamente
d) O tempo de execucao cresce exponencialmente
Resposta correta: c) O tempo de execucao cresce cubicamente
Explicacao: Quando dizemos que a complexidade de um algoritmo e
(n
3
), isso significa que, a medida que
n cresce, o tempo de execucao do algoritmo aumenta de forma cubica, ou seja, proporcional a
n
3
. Isso pode fazer com que o algoritmo se torne significativamente mais lento para grandes valores
de
n.
Quais sao as implicacoes praticas de um algoritmo ter complexidade
(nlogn)?
a) O algoritmo sera muito eficiente mesmo para entradas pequenas
b) O algoritmo tera um desempenho pior que um algoritmo com complexidade
(n
2
), mas melhor que um
(n
3
)
c) O algoritmo tera um desempenho linear, mas com um fator logaritmico