Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.520 questões
1. Pilhas são estruturas FIFO.
2. Filas são estruturas LIFO.
3. Listas encadeadas utilizam ponteiros.
4. Árvores são estruturas não lineares e hierárquicas.
Assinale a alternativa que indica todas as afirmativas corretas.
Assinale a alternativa que descreve corretamente esses dois conceitos.
A eficiência de um software está intrinsecamente ligada à escolha das estruturas de dados utilizadas para o armazenamento e recuperação de informações. Acerca do assunto, registre V, para as afirmativas verdadeiras, e F, para as falsas:
(__) Árvores Binárias de Busca (ABB) balanceadas garantem que a complexidade de tempo para as operações de inserção, remoção e busca no pior caso seja mantida em nível logarítmico.
(__) Tabelas de Espalhamento (Hash) operam com complexidade de tempo constante para busca em diversos cenários, independentemente do fator de carga ou da técnica de tratamento de colisões adotada.
(__) Filas de prioridade implementadas por meio de Montículos (Heaps) binários permitem o acesso ao elemento de maior prioridade em tempo constante, apresentando custo logarítmico para a remoção.
(__) Listas duplamente encadeadas apresentam desempenho superior aos vetores (Arrays) para o acesso aleatório a elementos por índices, consumindo menor volume de memória para grandes conjuntos.
Assinale a alternativa que apresenta a sequência correta, de cima para baixo.
(1) uma para processar eventos de log na ordem em que chegam, ou seja, o primeiro que chega é o primeiro que sai; e
(2) outra para gerenciar o histórico de navegação do usuário em um Web Service.
Assinale a alternativa que correlaciona corretamente a estrutura de dados e a ordem de processamento.
Assinale a afirmativa que compara corretamente a eficiência dos algoritmos de Busca Sequencial e Busca Binária neste cenário.
A estrutura de dados mais eficiente para atender ao requisito de busca com complexidade 0(1) em média para chaves, mesmo que envolva um trade-off no uso de memória, é
No desenvolvimento de soluções computacionais, a lógica de programação fornece os fundamentos para a construção de algoritmos capazes de resolver problemas de forma estruturada e compreensível. Analise as afirmativas a seguir:
I. Um algoritmo pode ser entendido como uma sequência ordenada de passos que descreve a resolução de um problema, independentemente da linguagem de programação utilizada.
II. Fluxogramas utilizam símbolos gráficos padronizados para representar o fluxo de execução de um algoritmo, facilitando a visualização das decisões e repetições.
III. O pseudocódigo permite descrever algoritmos de forma textual e estruturada, sem exigir a sintaxe específica de uma linguagem de programação.
IV. Variáveis são utilizadas para armazenar dados durante a execução do algoritmo, podendo ter seus valores alterados conforme as instruções são processadas.
V. Estruturas de repetição substituem totalmente as estruturas de decisão, pois ambas exercem a mesma função lógica dentro de um algoritmo.
Assinale a alternativa correta:
No desenvolvimento de sistemas computacionais, a construção de algoritmos envolve a definição clara de passos, o uso adequado de estruturas de dados e a adoção de paradigmas de programação conforme o problema a ser resolvido. Acerca destes conhecimentos, analise as afirmativas a seguir:
I. Um algoritmo pode ser representado por diferentes formas, como pseudocódigo ou fluxogramas, desde que descreva de maneira lógica e ordenada as etapas necessárias para resolver um problema.
II. Estruturas de dados como listas, filas e pilhas organizam informações de modos distintos, influenciando diretamente a eficiência das operações de inserção, remoção e acesso aos dados.
III. No paradigma procedural, os programas são estruturados em procedimentos ou funções, priorizando a organização do código em blocos reutilizáveis.
IV. Na programação orientada a objetos, conceitos como classes e objetos permitem agrupar dados e comportamentos, favorecendo a modelagem de sistemas mais próximos da realidade.
V. Estruturas condicionais e de repetição são exclusivas do paradigma orientado a objetos, não sendo aplicáveis a algoritmos procedurais.
Assinale a alternativa correta:
É CORRETO afirmar que:
É CORRETO afirmar que:
Nesse contexto, é CORRETO afirmar que:
(__)Em pseudocódigo, estruturas de seleção permitem a execução condicional de blocos de instruções distintos, conforme o resultado de uma expressão lógica avaliada durante a execução do algoritmo.
(__)Fluxogramas utilizam símbolos padronizados para representar decisões, entradas, saídas e processamento, facilitando a visualização do fluxo lógico, ainda que não substituam integralmente a descrição textual do algoritmo.
(__)Estruturas de repetição possibilitam a execução contínua de um conjunto de instruções enquanto uma condição permanecer verdadeira, sendo geralmente empregadas quando o número de iterações não é previamente conhecido.
(__)Vetores e matrizes são estruturas equivalentes quanto à organização lógica dos dados, diferenciando-se apenas pela quantidade de elementos armazenados, sem impacto na forma de acesso ou indexação.
(__)Registros permitem agrupar dados de naturezas diferentes sob um mesmo identificador, o que favorece a organização de informações relacionadas em um algoritmo.
(__)Procedimentos e funções têm como principal diferença o fato de que apenas as funções podem devolver valores ao algoritmo chamador, enquanto procedimentos executam ações sem retorno direto.
Assinale a alternativa que mostra corretamente a sequência de V(verdadeiro) e F (falso) de cima para baixo:
Uma livraria precisa gerenciar seu catálogo digital onde novos títulos são constantemente adicionados e livros esgotados são removidos. É essencial que as operações de inserção, remoção e busca por títulos sejam rápidas (idealmente em tempo logarítmico) para não impactar as vendas. O sistema deve manter os livros sempre em ordem alfabética.
Nesse contexto, qual estrutura de dados é mais adequada para atender a esses requisitos de um catálogo dinâmico e ordenado?
Considere um cenário em que é necessário organizar uma lista de objetos com base em um atributo específico (como nome, preço ou data) e, posteriormente, realizar buscas eficientes sobre essa lista. Com base nos fundamentos de algoritmos de busca e ordenação, analise as afirmativas a seguir:
I. O algoritmo Merge Sort é mais indicado do que o Bubble Sort quando se busca maior eficiência em listas grandes, pois apresenta complexidade de tempo O(n log n) em todos os casos.
II. A ordenação prévia de uma lista permite que algoritmos de busca binária sejam aplicados, o que reduz o tempo médio de busca para O(log n).
III. O algoritmo Insertion Sort é adequado para listas grandes (n > 1000000), pois sua implementação é simples e o custo de ordenação é aceitável nesse contexto.
IV. A busca sequencial apresenta melhor desempenho do que a busca binária em listas grandes, especialmente quando os dados estão ordenados.
Um algoritmo deve solicitar números ao usuário repetidamente até que ele digite zero. Todos os valores positivos informados devem ser somados antes do término.
A estrutura de repetição correta para implementar esse comportamento é chamada de