Questões de Concurso
Sobre complexidade de algoritmos em algoritmos e estrutura de dados
Foram encontradas 207 questões
Considere o seguinte trecho de código em Java para ordenação de um conjunto de números:

A ordem de complexidade desse algoritmo, considerando que o conjunto de números (n) não está ordenado, é:
Uma árvore binária completa de busca, isto é, uma árvore em que todos os níveis têm o máximo número de elementos, tem um total de N nós.
O número máximo de comparações necessárias para encontrar um elemento nessa árvore é
Quando dois elementos estão fora de ordem, há uma inversão, e esses dois elementos são trocados de posição, ficando em ordem correta. Assim, o primeiro elemento é comparado com o segundo. Se uma inversão for encontrada, a troca é feita. Em seguida, independentemente de se houve ou não troca após a primeira comparação, o segundo elemento é comparado com o terceiro, e, caso uma inversão seja encontrada, a troca é feita. O processo continua até que o penúltimo elemento seja comparado com o último. Com esse processo, garante-se que o elemento de maior valor do vetor seja levado para a última posição. A ordenação continua com o posicionamento do segundo maior elemento, do terceiro etc., até que todo o vetor esteja ordenado.
CELES, W.; CERQUEIRA, R.; RANGEL, J. L. Introdução a Estruturas de Dados. Rio de Janeiro: Elsevier, 2004, com adaptações.
Em relação ao algoritmo descrito, é correto afirmar que a
respectiva ordem de complexidade, no pior caso, é
Considerando o algoritmo abaixo, assinale a alternativa correta.

Considere o algoritmo abaixo.
static int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 2) + fibonacci(n - 1);
}
A complexidade deste algoritmo, na notação Big O, é
Considere o algoritmo em pseudocódigo, descrito a seguir.

Calcule a complexidade do algoritmo, sabendo que a função f tem
complexidade igual a O(n2).
Atenção: Os programas abaixo devem ser utilizados para responder a questão,

Para projetar algoritmos eficientes um desenvolvedor deve estar preocupado com a complexidade deste algoritmo, desde sua concepção.
Considere a seguinte função T(n) que mede os recursos (ex. tempo de execução) que um algoritmo necessita no pior caso para processar uma entrada qualquer de tamanho n:
T(n) = O(log(n))
Sabendo que O(log(n)) é a ordem da complexidade de tempo do
algoritmo seguindo a notação "big O", é correto afirmar que este
algoritmo tem complexidade de ordem:
Considerando o algoritmo apresentado, julgue o item seguinte, a respeito de conceitos básicos de estrutura de dados.
O algoritmo de ordenação apresentado é do tipo quicksort,
sendo sua complexidade temporal O(n2
).
Considere o código-fonte que segue:
int f1(int n) {
if (n == 0 II n == 1) return n;
else return (2 * f1(n-1) + 3 * f1(n-2)); }
int f2(int n) {
int a; int[] X = new int [n];
int[] X = new int [n]; int[] Z = new int [n];
X [0] = Y [0] = Z [0] = 0;
X [1] = 1; Y [1] = 2; Z [1] = 3;
for (a = 2; a <= n; a ++) {
X [a] = Y [a-1] + Z [a-2];
Y [a] = 2 * X [a]; Z [a] = 3 * X [a]; }
return X [n]; }
Qual é o tempo de execução de f1(n) e f2(n),
respectivamente?
