Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.682 questões
As afirmativas são, respectivamente,
Ana precisa utilizar uma estrutura de dados para gerenciar trabalhos de impressão em uma impressora compartilhada por vários computadores em uma rede. As regras dessa estrutura devem permitir que os trabalhos sejam impressos na ordem em que forem enviados, ou seja, o primeiro a enviar um pedido de impressão deve ser o primeiro a ter sua solicitação atendida. Não deve ser permitido inserir pedidos de impressão no meio dos pedidos já realizados.
A estrutura de dados mais adequada para Ana utilizar é
Com relação às árvores B, analise as afirmativas a seguir.
I. São densas. A largura (número de ponteiros partindo de um nó) e a altura (número de nós entre o nó raiz e a folha) estão inversamente relacionadas. Quanto maior a largura, menor a altura.
II. É uma estrutura de arquivos ubíqua amplamente utilizada e implementada em diversos SGBDs.
III. É uma estrutura desbalanceada. Podem existir nós folha (nós sem filhos) em vários níveis diferentes da árvore.
Assinale:
O processo de otimização de consultas é composto de um grande conjunto de etapas, uma dessas etapas envolve a construção de árvores de consulta, também conhecidas por árvores de sintaxe abstrata.
Uma árvore de consulta é uma estrutura de dados do tipo
Leia o fragmento a seguir.
“Hashing para arquivos em disco denominam‐se _____. Para se adaptar as características de armazenamento em disco, se considera que o espaço de endereços alvo é constituído por _____, cada um deles mantém múltiplos registros, formando um _____ de blocos consecutivos.”
Assinale a alternativa cujos itens completam corretamente as lacunas do fragmento acima.
I. Estrutura de dados que possui uma sequência de células, na qual cada célula contém um objeto de algum tipo e o endereço da célula seguinte.
II. Podem ser orientados, regulares, completos e bipartidos e possuir ordem, adjacência e grau.
III. Possuem o método de varredura esquerda-raiz-direita (e-r-d).
Os itens de I a III descrevem, respectivamente,
No que se refere às linguagens de programação, julgue o item subsecutivo.
A execução da função x descrita abaixo para o valor n igual a 8 fornecerá 21 como resultado.
long x(int n){
if (n<0) return -1;
if (n==0) return 0;
if (n==1) return 1;
return x(n-1) + x(n-2);
}
1. Escolha um elemento que será chamado o pivot da lista.
2. Reordene a lista de tal forma que os elementos menores que o pivot venham antes dele e os elementos maiores ou iguais ao pivot venham depois dele. Essa operação é chamada de partição, e cria duas sublistas:
a. a de menores que o pivot e
b. a de maiores ou iguais ao pivot.
3. Aplique recursivamente os passos 1 e 2 às sublistas de menores e maiores que o pivot.
O algoritmo acima corresponde ao
Inicio IniciaPilha(P); num=0 total=0 Enquanto (num <> -1) Le_teclado(num) Se (Vazia(P) ou Topo(P)<num) Push(P,num) Senao total <- total+Pop(P) Fim_se Fim_Enquanto Fim
Se o programa for executado com uma sequência de entrada (fornecida pelo teclado) igual a 3, 5, 6, 8, 10, 7, 9, 6, 1, -1 (começando pelo 3), ao final da execução, a pilha conterá (da base para o topo) os valores
Os valores sim, não, falso e verdadeiro são considerados constantes lógicas.
As duas operações básicas de uma fila são o empilhamento e o desempilhamento, também denominadas, respectivamente, PUSH e POP.
O método quicksort é semelhante ao bubble sort, pois opera comparando cada elemento de um vetor com seu sucessor e, caso este esteja fora de ordem, o quicksort auxilia a troca da posição. Dessa forma, em ambos os métodos, é grande o número de comparações e trocas para execução de vetores extensos.
Considere um vetor C com valores entre 0 e 999, em que cada elemento do vetor é dividido em três partes (unidade, dezena e centena). Nesse caso, o método de classificação por distribuição de chave, aplicado sobre C, realizará a ordenação dos valores pela execução de sucessivos passos, tomando-se em cada passo apenas uma parte do elemento.
A execução da função x descrita abaixo para o valor n igual a 8 fornecerá 21 como resultado.
long x(int n) {
if (n<0) return -1; if (n==0) return 0;
if (n==1) return 1;
return x(n-1) + x(n-2);
}