Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.682 questões
Analise as afirmativas a seguir com base em suas propriedades formais de complexidade, estabilidade e uso de memória na implementação tradicional apresentada na literatura clássica.
I. O Insertion Sort possui complexidade de tempo O(n²) no pior caso e pode apresentar complexidade O(n) no melhor caso, quando o vetor já se encontra ordenado.
II. O Merge Sort apresenta complexidade O(n log n) nos casos melhor, médio e pior, é estável e, em sua implementação tradicional, requer espaço adicional proporcional a O(n).
III. O Quick Sort apresenta complexidade média O(n log n) e pior caso O(n²), podendo este ocorrer quando o pivô escolhido produz partições altamente desbalanceadas.
IV. O Selection Sort possui complexidade O(n²) nos casos melhor, médio e pior e, em sua implementação tradicional, não é considerado um algoritmo estável.
Assinale a alternativa CORRETA:
Grafos caracterizam uma das estruturas de dados mais poderosas da computação, sendo empregados em diversos processos de negócio. Acerca do tema, analise as sentenças a seguir:
I- Em grafos não ponderados, uma busca em largura iniciada em um vértice de origem é adequada para determinar um caminho com o menor número de arestas para cada vértice alcançável.
PORQUE
II- A BFS explora os vértices em camadas de distância crescente a partir da origem, utilizando uma estrutura do tipo fila para processar primeiro os vértices descobertos mais cedo.
Analisadas as sentenças, assinale a alternativa CORRETA:
Estruturas de dados são importantes na construção de sistemas computacionais. Conforme o tema, analise as sentenças a seguir:
I- Em uma implementação de pilha baseada em vetor, a operação de remoção do elemento do topo exige, necessariamente, o deslocamento de todos os demais elementos para preservar a disciplina LIFO.
PORQUE
II- Na pilha, o elemento removido é o último que foi inserido, razão pela qual a operação de remoção deve ocorrer sobre a extremidade lógica denominada topo.
Analisadas as sentenças, assinale a alternativa CORRETA:
Uma equipe de desenvolvimento está revisando trechos de código de um sistema interno responsável pelo controle de requisições administrativas. Durante a análise técnica, foram discutidos aspectos relacionados à construção de algoritmos, estrutura de decisão, repetição, modularização e análise de complexidade.
Com base em fundamentos de desenvolvimento de sistemas e lógica de programação, analise as assertivas a seguir e assinale V (verdadeiro) ou F (falso):
(__) Um algoritmo pode ser descrito em linguagem natural estruturada, pseudocódigo ou fluxograma, desde que represente uma sequência finita e ordenada de passos para resolução de um problema.
(__) A utilização de estruturas de repetição, como "para" ou "enquanto", elimina a necessidade de estruturas condicionais dentro do mesmo bloco lógico.
(__) A modularização de um sistema tende a favorecer manutenção e reutilização de código, especialmente quando há definição clara de responsabilidades entre funções ou métodos.
(__) Um algoritmo cuja complexidade de tempo é O(n²), quando o número de operações executadas cresce proporcionalmente a n2, necessariamente apresentará desempenho inadequado para qualquer volume de dados.
(__) Na lógica de programação, variáveis são utilizadas para armazenar valores que podem ser modificados durante a execução do algoritmo.
(__) A validação de entradas de dados contribui para reduzir falhas decorrentes de estados inesperados no fluxo de execução.
Assinale a alternativa que possui a sequência correta de V (verdadeiro) e F (falso) de cima para baixo:
Durante a modernização de um sistema interno de protocolo eletrônico, a equipe técnica avaliou diferentes estruturas de dados para atender a requisitos específicos: controle de requisições em ordem de chegada, armazenamento dinâmico de registros, pesquisa eficiente por chave identificadora e organização hierárquica de setores administrativos. Considerando conceitos clássicos de estruturas de dados, analise as afirmativas a seguir:
I. Tabelas hash garantem tempo constante de busca independentemente da função de dispersão adotada e da ocorrência de colisões.
II. Filas implementam política do tipo FIFO (First In, First Out), sendo adequadas para controle de processamento em ordem cronológica de chegada.
III. Listas encadeadas permitem inserções e remoções sem necessidade de deslocamento físico de elementos subsequentes, diferentemente do que ocorre em arranjos estáticos.
IV. Árvores binárias de busca mantêm ordenação baseada em relação entre chave do nó e seus descendentes, o que pode favorecer operações de busca quando a estrutura está balanceada.
V. Pilhas são estruturas apropriadas para modelar chamadas recursivas, pois operam segundo disciplina LIFO (Last In, First Out).
Assinale a alternativa CORRETA.
1. “O algoritmo __________ percorre repetidamente o vetor, comparando elementos adjacentes e realizando trocas sempre que eles se encontram fora de ordem, até que nenhuma troca adicional seja necessária.”
2. “No método __________, cada novo elemento é inserido na posição adequada dentro da porção já ordenada do vetor, promovendo deslocamentos sucessivos dos elementos maiores.”
3. “O algoritmo __________ caracteriza-se por selecionar, a cada iteração, o menor elemento da região ainda não ordenada e posicioná-lo no início dessa região.”
4. “A técnica conhecida como __________ baseia-se na escolha de um elemento de referência, a partir do qual os demais elementos são reorganizados em dois grupos, menores e maiores, repetindo-se o processo nas subdivisões resultantes.”
5. “O procedimento __________ divide o vetor em partes menores, ordena essas partes separadamente e, em seguida, combina os resultados em uma única sequência ordenada.”
Assinale a alternativa que completa, corretamente, as afirmativas anteriores.
Ainda sobre árvores binárias de busca (ABB) e algoritmos de pesquisa de dados, dadas as afirmativas,
I. Em uma árvore binária de busca balanceada, o custo de uma operação de pesquisa é proporcional ao logaritmo do número de elementos armazenados.
II. Uma árvore binária de busca degenerada pode apresentar custo de pesquisa equivalente ao de uma busca sequencial em um vetor.
III. Diferentemente das árvores binárias de busca, a busca binária em vetores ordenados não sofre impacto da ordem de inserção dos elementos.
verifica-se que está/ão correta/s
Ainda sobre essas duas formas de implementação, dadas as afirmativas,
I. O algoritmo de busca binária tem o mesmo desempenho se implementado numa lista encadeada ou num vetor de posições, desde que os elementos estejam ordenados.
II. A lista encadeada evita desperdício de espaço em memória por superdimensionamento, uma vez que aloca memória por demanda de uso e não a priori.
III. Diferentemente da lista encadeada, numa lista com vetores, é possível acessar qualquer espaço da memória com o mesmo custo computacional.
verifica-se que está/ão correta/s
I. O cálculo de rota mais curta em redes complexas utiliza predominantemente o algoritmo de Dijkstra ou suas variações, como o A* (A-star).
II. Em aplicações logísticas, o geoprocessamento elimina completamente a necessidade de dados históricos de tráfego, pois os algoritmos de roteamento utilizam apenas a distância geométrica entre os pontos de origem e destino.
III. A análise de "Isócronas" permite visualizar em um mapa todas as áreas que podem ser alcançadas a partir de um ponto em um determinado intervalo de tempo (ex.: 15 minutos).
A sequência correta é
função buscaBinaria(vetor [], valor) inferior ← 0 superior ← N - 1 enquanto inferior <= superior { comando faltante se vetor[índice] == valor retornar índice senão se vetor[índice] < valor inferior ← índice + 1 senão superior ← índice - 1 } retornar -1
O algoritmo trabalha com valores do tipo inteiro e o vetor tem N elementos ordenados de forma crescente, com o índice do primeiro elemento sendo zero. O algoritmo retorna o valor do índice do vetor que contém o valor pesquisado, ou retorna -1, se o valor não for encontrado no vetor. Qual linha deve substituir o comando faltante no algoritmo para que ele implemente corretamente a busca binária?
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.