Gabarito disponível
def ordenacao_especial(lista):
n = len(lista)
for i in range(n - 1):
for j in range(0, n - i - 1):
if lista[j] > lista[j+1]:
lista[j],lista[j+1] = lista[j+1],lista[j]
return lista
lista_entrada = [4, 7, 1, 9, 3, 5, 8]
lista_ordenada = ordenacao_especial(lista_entrada)
print(f'A lista ordenada é: {lista_ordenada}')
Assinale a opção que apresenta corretamente o método de ordenação implementado pelo código acima.
Resolução comentada
Laços aninhados que trocam elementos adjacentes caracterizam o Bubblesort.
O código compara pares adjacentes lista[j] e lista[j+1] e os troca, reduzindo a faixa a cada passada (n-i-1). Os maiores valores sobem ao final, como bolhas. Esse é o Bubblesort.
Análise das alternativas
A) O Heapsort usa estrutura de heap. C) O Mergesort divide e intercala. D) O Insertion Sort insere cada elemento na parte já ordenada. E) O Quicksort usa pivô e particionamento.
Referência: Estruturas de dados; algoritmos de ordenação
Resolução comentada do VaiConcursos.