Questões de Concurso
Comentadas sobre algoritmos em algoritmos e estrutura de dados
Foram encontradas 1.554 questões
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?
I f(n) = Θ(g(n)) e g(n) = Θ(b(n)), logo f(n) = Θ(b(n)) II f(n) = O(g(n)) se e somente se g(n) = Ω(f(n)) III f(n) = O(g(n)) se e somente se g(n) = O(f(n)) IV f(n) = O(g(n)) e g(n) = O(b(n)), logo f(n) = Ω(b(n))
Em relação ao exposto, estão corretas as afirmativas
Considere a sub-rotina abaixo:
1. Programa
2. Declare X, Y e Z numérico
3. Leia X
4. Leia Y
5. Z:= (X + Y) x Y
6. Escreva Z
7. Fim programa
Analisando o programa acima, e supondo que o valor fornecido para “X” na terceira linha seja 3 e o valor fornecido para Y na quarta linha seja 4, pode-se afirmar que o valor da variável “Z” na sexta linha é:
Um método de busca bastante utilizado, conhecido como hash, baseia-se na utilização que mapeia chaves em endereços de memória, de modo que os dados associados a cada chave possam ser rapidamente localizados e lidos. Quando há conflitos de localização, algum algoritmo de separação é adotado.
Considere uma tabela hash armazenada em um arquivo no disco rígido. Supondo-se que a mesma possua uma função de hash razoavelmente protegida de conflitos, o número médio de acessos ao disco, necessários para localizar uma chave em um universo de N chaves, é mais próximo de
Correlacione os algoritmos internos de ordenação de listas da coluna à esquerda com sua descrição, na coluna à direita.
1) Bubblesort.
2) Ordenação por Seleção
3) Ordenação por Inserção
4) Shellsort
5) Quicksort
( ) Escolhe-se um pivot e particiona-se a lista em duas sublistas: uma com os elementos menores que ele e outra com os maiores, que, ao serem ordenadas e combinadas com o pivot, geram uma lista ordenada. O processo é aplicado às partições para ordená-las. Embora tenha uma complexidade de pior caso de O(n2 ), no caso médio é de O(n log n).
( ) Encontra-se o menor item do vetor. Troca-se com o item da primeira posição do vetor.
Repetem-se essas duas operações com os n − 1 itens restantes, depois com os n − 2
itens, até que reste apenas um elemento.
( ) Método preferido dos jogadores de cartas. A cada momento existem duas partes na lista:
uma ordenada (destino) e outra não ordenada (fonte). Inicialmente a lista destino tem
apenas o primeiro elemento, e a fonte os demais elementos. Em cada passo a partir de
i=2, seleciona-se o i-ésimo item da lista fonte. Deve-se colocá-lo no lugar apropriado na
lista destino, de acordo com o critério de ordenação.
( ) É uma extensão de um outro algoritmo de ordenação conhecido e permite trocas de elementos distantes um do outro, não necessariamente adjacentes. Os itens separados de h posições são rearranjados. Todo h-ésimo item leva a uma lista ordenada. Tal lista é dita estar h-ordenada.
( ) Varre-se a lista trocando-se de posição os elementos adjacentes fora de ordem. Varre-se a lista até que não haja mais trocas e, neste caso, a lista está ordenada.
A sequência correta, de cima para baixo, é: