Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.520 questões
Com relação à informática aplicada à estatística, julgue o item a seguir.
Os elementos de uma lista duplamente encadeada possuem uma referência para o próximo elemento e para o primeiro elemento da sequência.
Com relação à informática aplicada à estatística, julgue o item a seguir.
A quantidade mínima de execução é 0 na construção while (cond) { ... } e 1 na construção do { ... } while(cond).
Com relação à informática aplicada à estatística, julgue o item a seguir.
Caso f1( ), f2( ) e f3( ) sejam três funções booleanas, então, na condição f1( ) and f2( ) or f3( ), a função f3( ) não será executada se f1( ) = False.
I - A complexidade de um algoritmo é uma medida de Sua velocidade e do espaço que consome.
Il - A notação Big-O é usada para descrever o melhor caso de complexidade de um algoritmo.
IlI - Um algoritmo com complexidade O(1) tem tempo de execução constante, independentemente do tamanho da entrada.
Qual(is) afirmativa(s) está(ão) correta(s)?
I. Algoritmos recursivos são aqueles que se definem em termos de si mesmos, exigindo uma condição base para evitar chamadas infinitas.
II. A complexidade de tempo de um algoritmo refere-se exclusivamente ao número de passos necessários para executar o código, desconsiderando a entrada do problema.
III. Um algoritmo pode ser implementado em diferentes linguagens de programação, desde que sua lógica seja preservada.
Está correto o que se afirma em:
I. Toda árvore é um conjunto de vértices e arestas, que podem ou não ter ciclos. II. Em uma árvore, para existir uma aresta (a, b), precisa então existir os vértices a e b. III. São exemplos de árvores: árvore binária, árvore B, árvore B+e árvore rubro-negra.
Sobre as afirmações acima, pode-se afirmar que:
I. O Hash possui sua entrada de tamanho variável. II. O Hash possui sua saída em um tamanho variável. III. Pode-se reverter o Hash, como uma boa prática de criptografia.
Sobre as afirmações acima, pode-se afirmar que:
Sobre o algoritmo Advanced Encryption Standard (AES), foram feitas as seguintes afirmações:
I. O algoritmo AES pode usar chaves de 128, 192 ou 256 bits.
II. O algoritmo AES é considerado um algoritmo criptográfico simétrico.
III. O algoritmo AES realiza a cifragem e decifragem da informação.
Sobre as afirmações acima, pode-se afirmar que:
- Tarefas de alta prioridade são adicionadas a uma estrutura na qual a última tarefa inserida é a primeira a ser resolvida.
- Tarefas comuns seguem uma estrutura na qual as tarefas são resolvidas na ordem em que chegaram.
Com base nas definições de Pilhas e Filas, qual das alternativas relaciona CORRETAMENTE a estrutura de dados utilizada para cada tipo de tarefa?
sort = (array) => { if (array.length <= 1) { return array; } const pivot = array[array.length - 1]; const left = []; const right = []; for (let i = 0; i < array.length - 1; i++) { if (array[i] < pivot) { left.push(array[i]); } else {
right.push(array[i]); } } return [...sort(left), pivot, ...sort(right)];
}
Considerando n como o tamanho do vetor, assinale a alternativa CORRETA que corresponde à complexidade média de tempo do algoritmo na notação Big-O:
class TreeNode { constructor(value) { this.value = value; this.children = []; } addChild(child) { this.children.push(child); } } class Tree { constructor(value) { this.root = new TreeNode(value); }
compute(value) { if (!this.root) return null; const queue = [this.root]; while (queue.length > 0) { const current = queue.shift(); if (current.value === value) { return current; } for (const child of current.children) { queue.push(child); } } return null; } }
O método compute do código é conhecido pelo acrônimo em inglês:
Julgue o item a seguir, referente a algoritmos de aprendizado de máquina.
O algoritmo K-means garante a otimização dos clusters, independentemente da inicialização dos centroides, desde que a métrica de distância utilizada seja euclidiana, e os dados estejam em um espaço vetorial de baixa dimensionalidade.
Considere que uma fila inicialmente está vazia e recebe as seguintes operações sequencialmente:
1. Inserir 15 2. Inserir 20 3. Remover um elemento 4. Inserir 35 5. Inserir 42 6. Remover dois elementos 7. Inserir 51
Após todas essas operações, qual será a sequência de remoção dos elementos restantes na fila?
Sendo assim, sobre os algoritmos de ordenação, podemos afirmar que
I. Bubble sort é um algoritmo de ordenação simples e muito eficiente para grande conjunto de dados.
II. Insertion sort é um algoritmo de ordenação utilizado para um pequeno número de elementos.
III. Quick sort é um algoritmo de ordenação mais rápido, que emprega a técnica de divisão e conquista.
IV. Selection sort recebe esse nome pela maneira como ele percorre o array ao longo das iterações: ele seleciona o menor elemento atual e o troca de lugar.
Estão corretas apenas as afirmativas