

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.
Analise a imagem de um método de ordenação, a seguir:

Está sendo ordenada pelo:
Selection Sort.
Merge Sort.
Bubble Sort.
Quick Sort.
insertion Sort.
Considere os dados abaixo relativos a um método hashing.
chave ---------hash (chave)
Carlos | 6 |
Maria | 2 |
Fernando | 6 |
Luísa | 1 |
Adriano | 1 |
Jorge | 7 |
Pedro | 2 |
vetor
1 | Luísa |
2 | Maria |
3 | Adriano |
4 | |
5 | |
6 | Carlos |
7 | Fernando |
8 |
Com base no método apresentado acima e na sua continuação, é correto afirmar que
Pedro ocupará a posição 4 do vetor.
não há colisões.
Jorge ocupará a posição 7 do vetor e Fernando será deslocado para a posição 8.
serão realizadas, na pesquisa por Adriano, apenas 2 comparações para encontrá-lo.
ocorreu uma pseudocolisão entre Adriano e Luísa.
O algoritmo de ordenação que requer uma quantidade constante de O(1) espaço de memória adicional é o algoritmo de
ordenação por seleção.
ordenação por mistura.
ordenação por inserção.
ordenação por flutuação.
ordenação heapsort.
Considere a lista de números inteiros: 830, 73, 743, 752, 407, 618, 442. Um algoritmo de ordenação é utilizado para dispor os elementos da lista em ordem ascendente. A seguir é exibido o conteúdo da lista, ao final de cada iteração que movimenta elementos durante a execução do algoritmo, até que a lista esteja ordenada:
73, 743, 752, 407, 618, 442, 830 73, 743, 407, 618, 442, 752, 830 73, 407, 618, 442, 743, 752, 830 73, 407, 442, 618, 743, 752, 830 |
As movimentações de elementos obtidas neste caso evidenciam que o algoritmo de ordenação é denominado
Quicksort.
Ordenação por inserção.
Bubblesort.
Ordenação por seleção.
Considere o pseudocódigo do método de ordenação Insertion Sort, o qual ordena em ordem crescente os números naturais armazenados em um vetor (array) v de tamanho t indexado a partir de zero (ou seja, índices do vetor variam de 0 a t-1).
...
Assinale a alternativa que completa corretamente o espaço pontilhado entre chaves do pseudocódigo abaixo.
...
função Ordena(v, t)
{
i ← 1
enquanto i < t faça
{
j ← i
enquanto j > 0 e v[j-1] > v[j] faça
{
.....................
}
i ← i + 1
}
}
x ← v[j]
v[j] ← v[j - 1]
v[j – 1] ← x
j ← j + 1
x ← v[j]
v[j] ← v[j - 1]
v[j – 1] ← x
j ← j - 1
x ← v[j]
v[j] ← v[j + 1]
v[j + 1] ← x
j ← j - 1
x ← v[j]
v[j] ← v[j + 1]
v[j + 1] ← x
j ← j + 1
x ← v[j]
v[j] ← v[j - 1]
v[j – 1] ← x
j ← j – 2
Considere os algoritmos de ordenação sortA e sortB listados a seguir, para ordenação de vetores em ordem crescente descrito em linguagem C++.
template <typename T> void sortA(T v[], int n)
{
for (int i=0; i <n; i ++)
for (int j=i; (j >0) && (v[j] < v[j-1]); j--)
swap(v, j, j-1);
}
template <typename T> void sortB(T v[], int n)
{
for (int i=0; i < (n-1); i++){
int lowindex=i;
for (int j=n-1; j > i; j--){
if (v[j] < v[lowindex]) lowindex=j;
}
swap(v, lowindex, i);
}
}
template <typename T> void swap(T v[], int i, int j){
T temp;
temp=v[i];
v[i]= v[j];
v[j]= temp;
}
É CORRETO apenas o que se afirma em:
O número de execuções da função swap no sortA é constante independentemente do vetor a ser ordenado.
No algoritmo sortB, o valor lowindex e i será sempre diferente na chamada do procedimento swap.
O algoritmo sortA é vantajoso quando o vetor a ser ordenado está em ordem totalmente decrescente.
Dependendo do valor inicial do vetor, o sortB pode exigir menos chamadas da função swap que o sortA.
Na ordenação por seleção, é necessário permutar o vetor. Para esse caso, o significado de ‘permutar’ é
substituir o vetor por chaves de ordenação.
rearranjar os elementos do vetor.
alterar os valores de um vetor A depois de ordenado em um vetor B.
alternar os valores de um vetor A com um vetor B.
ordenar os elementos do vetor A em função de um vetor B de ordenação.
Usando o algoritmo Bubble Sort um técnico deseja ordenar o conteúdo de um array utilizando o código JavaScript abaixo, presente no corpo de uma página HTML.
-
<body>
<script>
var arr = [220, 63, 25, 8, 5, 7, 295, 589];
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < (arr.length - i - 1); j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j]
I
arr[j + 1] = temp
}
}
}
document.write(arr);
</
</
-
Para que o array seja ordenado corretamente a lacuna I deve ser corretamente preenchida com
arr[j] = arr[j + 1]
arr[j] = arr[j + i]
arr[i] = arr[j + 1]
arr[j] = arr[j - 1]
arr[j + 1] = arr[j + 1]
Sobre o Método de Ordenação Merge Sort, é CORRETO afirmar que:
o Merge Sort, ou Ordenação por Mistura, é um algoritmo de ordenação por inserção.
o Merge Sort, ou Ordenação por Mistura, é um algoritmo de ordenação por seleção.
o Merge Sort, ou Ordenação por Mistura, é mais eficiente que o Método da Bolha (Bubble Sort) apenas nos casos em que há poucos dados a serem ordenados.
o Merge Sort é mais eficiente que o Método da Bolha (Bubble Sort) em todos os casos.
o Merge Sort, ou Ordenação por Mistura, é um algoritmo de ordenação que usa a estratégia dividir-para-conquistar.
Sistemas operacionais como o Linux, e linguagens como Python, dispõem de rotinas de classificação (sort). Dentre os algoritmos dessas rotinas há um método que percorre um vetor de elementos da esquerda para a direita e, à medida que avança, vai ordenando os elementos à esquerda. Consiste em cada passo, a partir do segundo elemento, selecionar o próximo item da sequência e colocá-lo no local apropriado de acordo com o critério de ordenação. Esse método é chamado:
selection sort.
bubble sort.
inserction sort.
quick sort.
merge sort.
Sobre a complexidade dos métodos de ordenação, assinale a alternativa INCORRETA.
Ordenação por Inserção tem complexidade O(n2).
Ordenação por Seleção tem complexidade O(n2).
O Shellsort tem complexidade O(n log n).
O Quicksort tem complexidade O(log n).
O Heapsort tem complexidade O(n log n).
A complexidade de tempo do algoritmo bubble sort é do tipo O(n×logn), logo, no caso desse algoritmo, o tempo de execução aumenta exponencialmente com o acréscimo do valor de n.
Certo
Errado
Um tipo de algoritmo muito usado na resolução de problemas computacionais são os algoritmos de ordenação. Assinale a única alternativa que esteja tecnicamente incorreta quanto a especificar exatamente algoritmos de ordenação simples.
Quick Sort
Smart Sort
Insertion Sort
Bubble Sort
Considere que um método de ordenação tenha seu desempenho baseado no número de comparações que realiza para ordenar um vetor com N elementos em ordem crescente. Este método apresenta o seguinte resultado no melhor caso (NCmelhor), no caso médio (NCmédio) e no pior caso (NCpior):
NCmelhor = N-1
NCmédio ≅ (N*(N-1))/4 - 1/2
NCpior ≅ (N*(N-1)-1)/2
Com base nestes resultados, é correto afirmar que o método
sempre realiza um número muito grande de trocas em todos os três casos, por isso é muito ineficiente.
é sempre ineficiente, mesmo para valores pequenos de N.
é de ordem de complexidade quadrática ou O(N2).
apresenta um desempenho muito eficiente no caso médio, quando o vetor está em ordem decrescente, por exemplo.
é de ordem de complexidade linearítmica ou O(N-1) no melhor caso, quando o vetor está parcialmente ordenado.
O algoritmo de ordenação decrescente onde cada entidade é comparada com o seu posterior e, se maior, invertidas as posições sucessivamente, até que a coleção esteja ordenada, é chamado :
selection sort.
digital sort.
bubble sort.
quick sort.
random sort.
O método de ordenação conhecido por merge sort é usualmente implementado de maneira recursiva e realiza o ordenamento basicamente separando o vetor de dados em análise em duas partes, até que haja a comparação de apenas dois elementos para se verificar se há a necessidade de troca da posição. Depois, também de maneira recursiva, esses elementos vão sendo novamente reagrupados até que o vetor seja retornado na ordem ascendente ou descendente, conforme o interesse, como esquematizado na figura a seguir.

Fonte: IFSP, 2022.
Considerando o trecho de código a seguir e o vetor B=[10, 9, 8, 7, 6, 5, 4, 3, 2, 1], é correto afirmar que, no print(A) da linha 7 com o ordenamento ascendente do vetor B, a resposta da sua saída será:
1 | defmergesort(A, aux,esquerda, direita): |
2 | if direita <= esquerda: |
3 | return |
4 | meio = (esquerda + direita) / |
5 | # Ordenaa primeira metade do arranjo. |
6 | mergesort(A, aux,esquerda, meio) |
7 | print(A) |
8 | # Ordenaa segunda metadedo arranjo. |
9 | mergesort(A, aux,meio + 1, direita) |
10 | # Combina as duas metades ordenadas anteriormente. |
11 | merge(A, aux,esquerda, meio, direita) |
[9, 10, 8, 7, 6, 5, 4, 3, 2, 1]
[10, 9, 8, 6, 7, 5, 4, 3, 2, 1]
[10, 9, 8, 7, 6, 4, 5, 3, 2, 1]
[10, 9, 8, 7, 6, 5, 4, 3, 1, 2]
O algoritmo de ordenação por intercalação faz uso de um paradigma também utilizado pelo algoritmo de ordenação quicksort e, embora ligeiramente diferentes, a estratégia é a mesma para ambos os algoritmos. Assinale a alternativa que apresenta corretamente o nome dessa estratégia de ordenação.
Equação de recorrência.
Definição de pivô.
Combinação.
Dividir e conquistar.
Árvore binária balanceada.
A seguir, apresenta-se um procedimento escrito na linguagem C que corresponde a um método de ordenação.
void Sort (int arr [ ], int size {
int i, j, key;
for ( i = 1; i < size; i ++) {
key = arr [ i ] ;
j = i - 1
while ( j >= 0 && arr [ j ] > key) {
arr [ j + 1 ] = arr [ j ] ;
j = j - 1
}
arr [ j + 1 ] = key
}
}
Qual é o método de ordenação implementado?
Shell Sort.
Quick Sort.
Bubble Sort.
Insertion Sort.
Relacione os números que referem-se a algoritmos de ordenação com as respectivas letras de suas principais características técnicas:
1. Insertion Sort
2. Selection Sort
3. Bubble sort
A. Consiste em selecionar o menor item e colocar na primeira posição, selecionar o segundo menor item e colocar na segunda posição, segue estes passos até que reste um único elemento.
B. Consiste em cada passo, a partir do segundo elemento, selecionar o próximo item da sequência e colocá-lo no local apropriado de acordo com o critério de ordenação.
C. Percorre o vetor diversas vezes e, a cada passagem faz flutuar para o topo o maior elemento da sequência.
Assinale a alternativa com a correlação correta de cima para baixo.
1B - 2A - 3C
1C - 2A - 3B
1B - 2C - 3A
1A - 2B - 3C
Considere o problema de ordenar em ordem crescente o vetor (array) de números inteiros [7, 30, 2, 45, 66, 13, 17, 23, 1, 15] utilizando o algoritmo de ordenação Bubble Sort em sua versão não recursiva. Analise as afirmativas abaixo e assinale a alternativa correta.
I. São feitas 23 trocas de elementos do vetor até que ele esteja totalmente ordenado.
II. A ordem dos elementos do vetor será [2, 7, 30, 13, 17, 23, 1, 15, 45, 66] após 10 trocas de elementos.
III. O número de trocas de elementos diminui à medida que a execução do algoritmo de ordenação avança.
Somente as afirmativas I e II estão corretas.
Somente as afirmativas II e III estão corretas.
Somente a afirmativa III está correta.
Somente a afirmativa I está correta.
Todas as afirmativas estão corretas.