

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Estruturas como Bubble Sort e Quicksort têm como finalidade:
Seja o vetor A com n elementos (n>5), cujo primeiro elemento está na posição 1 e o último está na posição n. O algoritmo a seguir, que está escrito em pseudocódigo, busca ordenar o vetor A:
para i = 1 até n–1, faça
min = i
para j = i+1 até n, faça
se A[j] < A[min], então
min = j
fim-se
fim-para
temp = A[i]
A[i] = A[min]
A[min] = temp
fim-para
Essencialmente, o pseudocódigo refere-se ao algoritmo
ordenação por seleção.
ordenação por inserção.
ordenação por bolha.
Quicksort.
Considere as seguintes afirmações sobre o ciclo de vida de uma Activity, e assinale (V) para verdadeiro e (F) para falso:
( ) O método onCreate(bundle) é obrigatório e é chamado uma única vez durante todo o ciclo de vida de uma Activity.
( ) O método onStart() é chamado quando a Activity está no topo da pilha de execução.
( ) Em casos de falta de memória, o sistema operacional do Android pode decidir encerrar uma Activity que esteja parada em segundo plano.
( ) Quando uma Activity está em execução e uma ligação é recebida e atendida pelo usuário, o método onStop() é chamado.
( ) O método onDestroy() é executado quando o método finish() da classe Activity é chamado pela aplicação.
A sequência correta, de cima para baixo, é
V - F - V - F - F.
F - V - F - V - F.
F - F - V - V - V.
V - F - V - F - V.
Assinale a alternativa correta a respeito dos principais algoritmos de ordenação.
O algoritmo de ordenação QuickSort é um algoritmo eficiente, porém deve ser implementado visando a uma boa escolha do elemento pivô.
O algoritmo de ordenação por inserção tem uma implementação cara, porém com um desempenho estável.
O algoritmo de ordenação HeapSort é um algoritmo eficiente em relação ao tempo, porém ineficiente em relação à memória.
O algoritmo de ordenação ShellSort tem sua principal desvantagem quando os dados a serem ordenados estão parcialmente ordenados.
O algoritmo de ordenação por seleção tem uma implementação cara, porém com desempenho estável.
Observe o trecho de pseudocódigo abaixo:
Com relação à complexidade assintótica dos algoritmos comuns de ordenação, assinale a alternativa incorreta:
O caso médio de comparações do algoritmo MergeSort é O(n log n)
O pior caso de movimentações do algoritmo BubbleSort é O(n2)
O pior caso de comparações do algoritmo QuickSort é O (n log n)
O melhor caso de movimentações do algoritmo InsertionSort é O(n)
Considere a seguinte implementação na linguagem PHP do algoritmo de ordenação de vetores Insertion Sort:
O trecho de código que deve ser usado como parâmetro na estrutura de repetição for, onde há uma lacuna, para que o vetor fornecido como parâmetro seja ordenado ao final da execução desta função é:
function ordenaInsertionSort ($vetor ) {
$ tamanhhoVetor = sizeof ($vetor) ;
for(________________) {
$elemento = $vetor [$i ]
$j = $i - 1 ;
while ( $j >= ο && $vetor [$j] > $elemento) {
$vetor [$j+1] = $vetor [$j ];
$j --;
}
$vetor [$j + 1] = $elemento
}
return $vetor;
}
$i = 1; $i < $tamanhoVetor; $i++
$i = 1; $i > $tamanhoVetor; $i++
$i = 1; $i < $tamanhoVetor -1; $i++
$i = $tamanhoVetor; $i > $tamanhoVetor; $i--
Observe a tabela a seguir, que foi submetida a um algoritmo de ordenação:
8 7 6 5 4 3 2 1
Em algum ponto da ordenação, essa tabela se encontra da seguinte forma:
6 5 3 1 4 2 7 8
Sendo assim, segundo Szwarcfitter e Markenzon (2010), qual o método de ordenação utilizado acima?
Bolha.
Inserção.
Heap.
Mergesort.
Hyper.
Um algoritmo de ordenação é considerado estável quando:
A execução do algoritmo, mesmo com um grande volume de dados, não causa instabilidades no processador
A ordem relativa dos itens com chaves iguais não se altera durante a execução
A execução do algoritmo, mesmo com um grande volume de dados, não causa instabilidades na memória principal
A ordem relativa dos itens com chaves iguais se altera durante a execução
Como é denominado o método de ordenação que percorre um vetor de elementos da esquerda para a direita e que, à medida que avança, ordena os elementos à esquerda, sempre comparando o elemento atual com o seu sucessor?
Insertion sort
Selection sort
Quick sort
Merge sort
Quick Sort é um algoritmo de busca que tem por objetivo aumentar a eficiência na procura por elementos em uma estrutura de dados do tipo vetor, reduzindo a quantidade total de consultas necessárias para encontrar o elemento desejado.
Certo
Errado
O tempo de execução do Quicksort independe do fato de o particionamento ser balanceado.
Certo
Errado
Qual é o método de ordenação mais eficiente entre os listados a seguir?
O(n * n2)
O(n2)
O(2n)
O(nn)
O Quicksort (ordenação rápida) é um algoritmo de ordenação cujo tempo de execução do pior caso é Θ(n2) sobre um arranjo de entrada com n números.
Certo
Errado
O tempo de execução do Heapsort é o O(n2), portanto mais rápido que o Quicksort.
Certo
Errado
A notação O descreve um limite superior e, quando a empregamos para limitar o tempo de execução do pior caso de um algoritmo, temos um limite sobre o tempo de execução do algoritmo em cada entrada.
Certo
Errado
Assinale a alternativa CORRETA.
Muitos algoritmos de ordenação de números armazenados em array necessitam fazer comparações (verificar se um número é menor, igual ou maior que outro número) e trocas (mudar a posição dos números dentro do array).
Considere o problema de ordenar um array contendo N números inteiros. Se for utilizado o Método da Bolha, qual é o menor número possível de trocas para ordenar completamente o array?
N
0 (zero)
N / 2 (metade de N)
2 x N (duas vezes N)
N! (fatorial de N)
Quantas comparações e trocas de posição ocorrerão se utilizarmos o algoritmo Bubble Sort para ordenar do menor para o maior valor o vetor [60,32,45,5,6,2], respectivamente:
10 e 4.
15 e 13.
25 e 15.
22 e 12.
12 e 9.
Cláudia trabalha como Analista Legislativo na Assembleia Legislativa do Estado de Pernambuco e recebeu de seu chefe um arquivo com a lista de todas as Leis Orçamentárias válidas entre 1900 até o presente ano, sem nenhuma ordenação. Para melhor localizar as Leis com base no ano a qual pertencem, Cláudia implementou uma solução que, buscando agilizar este processo,
utilizou o algoritmo de ordenação Quicksort para ordenar as Leis em ordem crescente de ano e o algoritmo de Pesquisa Binária para localizar rapidamente o ano da Lei.
inseriu os dados numa fila encadeada e utilizou o algoritmo de Pesquisa Binária para localizar rapidamente o ano da Lei.
inseriu os dados numa pilha com alocação dinâmica e utilizou o algoritmo de Pesquisa Sequencial para localizar rapidamente o ano da Lei.
foi baseada numa linguagem orientada a objetos. Utilizou a função global quicksort() disponível na classe genérica ordenacao () para classificar as Leis em ordem crescente de ano.
utilizou o algoritmo de pesquisa avançada Hashing para localizar rapidamente as Leis diretamente do arquivo.
É um método de ordenação por troca:
shell.
inserção direta.
bubble sort.
seleção direta.
hashing.
Um programador utilizou o código a seguir, escrito em C, para ordenar um vetor de tamanho médio.
void ordenar(int *vetor, int tamanho) { int x , y , valor; int intervalo= 1; while(intervalo <tamanho) { intervalo= 3*intervalo+1; } while (intervalo> 1) { intervalo/= 3; for(x= intervalo; x < tamanho; x++) { valor= vetor[x]; y = x- intervalo; while (y >= 0 && valor< vetor[y]) { vetor [ y +intervalo]= vetor[y]; y-= intervalo; } vetor [y +intervalo]= valor; } } } |
O algoritmo em que o código se baseia utiliza um método de quebra sucessiva da sequência a ser ordenada e implementação da ordenação por inserção na nova sequência obtida , sendo denominado:
shellsort.
bubblesort.
heapsort.
quicksort.
mergesort.