Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.682 questões
A ordenação de elementos em um vetor pode ser executada a partir de diversos algoritmos conhecidos e que são adequados para situações específicas. Sobre algoritmos de ordenação, dadas as seguintes afirmativas,
I. O algoritmo Bubble Sort é eficiente para ordenar poucos elementos, mas é lento para ordenar muitos itens.
II. O algoritmo Selection Sort para ordenação crescente
consiste em mover o menor valor do vetor para a primeira
posição, depois o segundo menor para a segunda posição e
assim sucessivamente até os dois últimos valores.
III. O algoritmo Quick Sort ordena os valores de um vetor através de sucessivas seleções do elemento correto a ser posicionado em um segmento ordenado.
verifica-se que está(ão) correta(s)
Os exemplos de pseudocódigo a seguir resolvem Xn para X en inteiros maiores que 0:
ALGORITMO EXEMPLO 1
VAR A, N, X, CONT: INTEIRO
INÍCIO
LEIA (X, N)
CONT ← 1
A ← 1
ENQUANTO (CONT <=N) FAÇA
A ← A * X
CONT ← CONT + 1
FIM_ENQUANTO
IMPRIMA(A)
FIM
ALGORITMO EXEMPLO 2
VAR A, N, X, CONT: INTEIRO
INÍCIO
LEIA (X, N)
A ←1
PARA CONT ← 1 ATÉ N PASSO 1
A ← A * X
FIM_PARA
IMPRIMA(A)
FIM
Sobre os exemplos apresentados, é correto afirmar que:
1. for ( int i=0; i < n; i ++) {
2. for (int j=1; j < (n-i) ; j ++) {
3. if (intArray[ j-1] > intArray[ j ] ) {
4. temp = intArray[ j-1] ;
5. intArray[ j-1] = intArray[ j ] ;
6. intArray[ j ] = temp ;
7. }
8. }
9. }
Para expressar propriedades desse código, na linguagem da lógica proposicional, considere as proposições lógicas p, q e r e as seguintes interpretações:
• p é verdadeiro se e somente se i = 0
• q é verdadeiro se e somente se j ≠ (n-i)
• r é verdadeiro se e somente se intArray[j-1] > intArray[j]
Nesse contexto, os comandos de atribuição presentes neste trecho de código (linhas 4, 5 e 6) serão executados para:
Nesse contexto, considere a execução das instruções a seguir
push(pY, pop(pX));
push(pZ, pop(pX));
push(pY, pop(pX));
push(pZ, pop(pX));
push(pX, pop(pY));
push(pZ, pop(pY));
push(pZ, pop(pX));
Após a execução das instruções acima, quais os somatórios dos elementos em cada uma das pilhas pX e pZ, respectivamente?
I - Nas árvores B todas as folhas sempre estarão no mesmo nível.
II - Nas listas duplamente encadeadas, todos os nós apontam para os nós sucessores e antecessores.
III - Nas árvores binárias cada nó pode ter no máximo duas subárvores.
I. Uma organização de arquivo hash (também chamada de acesso direto) fornece um acesso muito rápido aos registros, quando a condição de pesquisa é de igualdade em um único campo; neste caso, o campo é chamado campo de hash. A ideia do hashing é forncecer uma função h, chamada função hash, que, aplicada ao valor do campo hash de um registro, gere o endereço do bloco do disco no qual o registro será armazenado.
II. Em uma organização de arquivo heap, os registros são armazenados fisicamente em ordem sequencial a partir dos valores de um de seus campos, chamado campo de classificação. Na organização de arquivo heap, a inclusão e a exclusão de registros são operações dispendiosas porque os registros deverão permanecer ordenados fisicamente.
III. Em uma organização de arquivo sequencial, os registros estão posicionados no arquivo segundo a ordem pela qual foram incluídos, de forma que os novos registros são acrescentados ao final do arquivo ou onde haja espaço disponível. Na organização sequencial, para ler todos os registros pela ordem dos valores de algum campo, é preciso criar uma cópia do arquivo e ordená-la através de técnicas especiais de classificação externa.
IV. As operações em arquivos são geralmente divididas em operações de recuperação e operações de atualização. As operações de recuperação não alteram nenhum valor no arquivo, apenas localizam certos registros, de forma que seus valores de campo possam ser examinados e processados. As operações de atualização mudam o arquivo por meio da inclusão ou da exclusão de registros ou pela modificação de valores dos campos.
Assinale a alternativa CORRETA.
Cada uma das listas originais possui ponteiros para o primeiro e para o último elementos. Qual é a complexidade do algoritmo mais eficiente que esse programador pode produzir?
Os atendentes podem cadastrar, atualizar e excluir pedidos. Todos os pedidos são cadastrados com o status “aberto”. O status de um pedido é único e corresponde à situação em que ele se encontra a cada momento. Após ter suas informações completamente fornecidas, um pedido é passado para o departamento de ativação, que muda seu status para “ativando” e muda, posteriormente, para “atendido” quando o atendimento se encerra. Uma vez que um pedido não está mais em aberto, ele não pode ser modificado para atender a solicitações externas. Sobre um mesmo pedido, considere as seguintes proposições e seu significado pretendido:
P: o pedido está em aberto.
Q: o pedido está ativando.
R: o pedido está atendido.
M: o pedido pode ser modificado.
Para os requisitos descritos, vale a seguinte fórmula da lógica proposicional:
Assumindo que a altura de uma folha é zero, qual será a altura resultante dessa árvore?
Comandos do-while (“faça-enquanto”), while-do (“enquanto-faça”) e for (“para-condição-atualização”), em linguagens de programação, permitem a execução de laços e são necessários em muitos algoritmos.
No comando do-while, a expressão lógica associada ao ________ é avaliada ________ execução do bloco de comandos; no ________, a expressão lógica de controle é avaliada ________.