Questões de Concurso Sobre algoritmos e estrutura de dados
Foram encontradas 3.780 questões
Assuma que existam as seguintes operações para manipulação da pilha:
Push a: empilha o valor da variável a na pilha, preservando o valor original de a.
Pop a: retira o valor do topo da pilha e o armazena na variável a.
Considerando o funcionamento típico de uma pilha e as variáveis x, y e z, a seguinte sequência de operações foi realizada em um programa:
x ← 5 y ← 4 Push x Push y Pop x Pop y x ← x – 2 y ← y – 1 Pop z Pop z Push x Push y
Dessa forma, é correto afirmar que a pilha passará a conter os seguintes valores armazenados (ordenados de cima para baixo) após a execução desse programa:
Supondo-se que os valores lidos para as variáveis a1 e a2 tenham sido 1 e 2, respectivamente, ao final da execução desse algoritmo, a variável Z irá conter o valor
I.A busca por um elemento em uma árvore binária de busca (BST) perfeitamente balanceada possui complexidade de tempo no pior caso de O(logn), enquanto a busca em uma tabela de hash (hash table) com uma função de hash ideal e sem colisões possui complexidade de tempo de O(1).
II.Uma lista duplamente encadeada oferece vantagem sobre uma lista simplesmente encadeada por permitir a inserção e remoção de elementos em tempo constante, O(1), em qualquer posição da lista, desde que o ponteiro para o nó seja conhecido.
III.A estrutura de dados mais eficiente para implementar um sistema que necessita processar tarefas com base em diferentes níveis de urgência, garantindo que a tarefa de maior urgência seja sempre processada primeiro, é uma fila de prioridade (priority queue), frequentemente implementada com um heap.
Está correto o que se afirma em:
Considere o algoritmo abaixo, em Python, que busca o menor elemento de uma lista e remove-o repetidamente, formando uma nova lista ordenada:

Esse algoritmo, apesar de funcional, apresenta baixa eficiência. A complexidade de tempo resultante é:
Assinale a alternativa que completa a lacuna no texto acima:
Analise as seguintes proposições sobre métodos de ordenação:
I - A ordenação por seleção (Selection Sort) realiza sempre a mesma quantidade de comparações, independentemente de o conjunto estar previamente ordenado ou não.
II – A ordenação por inserção (Insertion Sort) é o método adequado quando o vetor está quase ordenado.
III – A ordenação por borbulhamento (Bubble Sort) é um método em que, quando o vetor já encontra-se ordenado, nenhuma comparação ou movimentação ocorre.
IV – A ordenação por inserção (Insertion Sort) é estável, isto é, ela preserva a ordem relativa dos itens com chaves iguais.
Assinale a alternativa CORRETA:
Adaptado de ZIVIANI, N. Projeto de algoritmos: com implementações em JAVA e C++. Porto Alegre: +A Educação – Cengage Learning Brasil, 2012.
Uma Árvore de Busca Binária (ABB) é um caso especial de uma árvore binária, em que, para cada nó, a seguinte propriedade é verdadeira: todos os registros com chaves menores do que a chave deste nó estão em sua subárvore esquerda e todos os registros com chaves maiores estão em sua subárvore direita. O caminhamento em uma ABB é uma forma sistemática de “visitar” todos os nós dessa árvore. Há três métodos bem conhecidos para realizar esse caminhamento: 1) pré-ordem, 2) em-ordem e 3) pós-ordem.
Considere que os seguintes registros numéricos (50, 30, 70, 20, 40, 10, 35, 60, 80, 65, 5) foram inseridos em uma ABB inicialmente vazia, registro a registro, da esquerda para a direita.
O caminhamento pré-ordem irá processar os registros dessa árvore na seguinte ordem:
Considerando o código acima, a variável que representa o valor MINMAX é
Considerando um conjunto de registros previamente ordenado e sem repetições, analise as seguintes proposições sobre métodos de busca interna:
I. A aplicação de busca sequencial sobre esse conjunto exigirá a verificação de todos os registros do conjunto para o melhor caso.
II. A aplicação de busca sequencial com sentinela sobre esse conjunto reduz o número de comparações, pois elimina a necessidade de testar a cada passo se o final do conjunto foi alcançado.
III. A busca binária pode ser aplicada sobre esse conjunto de registros.
Assinale a alternativa CORRETA:
ZIVIANI, N. Projeto de algoritmos: com implementações em JAVA e C++. Porto Alegre: +A Educação – Cengage Learning Brasil, 2012.
Considere o vetor v = [5, 2, 9, 1, 6] e a aplicação do algoritmo de Bubble Sort para ordená-lo em ordem crescente. Após a primeira passagem (primeiro ciclo) do algoritmo, o estado do vetor é:
ZIVIANI, N. Projeto de algoritmos: com implementações em JAVA e C++. Porto Alegre: +A Educação – Cengage Learning Brasil, 2012.
O conjunto básico de operações de uma fila é:
• criar (): cria uma fila vazia; • enfileirar (f, x): enfileira o item x no final da fila f; • desenfileirar (f): desenfileira o item do início da fila f e o retorna; • inicio(f): retorna o item do início da fila f, sem retirá-lo.
Considere a seguinte sequência de operações sobre uma fila f vazia: enfileirar(f, 4); enfileirar(f, 7); enfileirar(f, 2); desenfileirar(f); enfileirar(f, 9); inicio(f); desenfileirar(f); enfileirar(f, 5); enfileirar(f, 6); desenfileirar(f); enfileirar(f, inicio(f)).
Assinale a alternativa que representa CORRETAMENTE o conteúdo fila, do início para o final, após a execução de todas as operações acima:
Analise o algoritmo da figura.

Após a execução, o algoritmo irá gerar, como resultado, a seguinte série:
Analise o pseudocódigo a seguir, considerando o comportamento das funções: andar_frente(n) faz um robô andar n passos para frente, andar_trás(n) faz o robô andar n passos para trás e sair() encerra o laço enquanto.

Assinale a alternativa que indica corretamente o valor final da variável total após a execução do algoritmo: