Escreva um algoritmo que ordene de maneira descrescente (do maior para o menor).

Passo 1

O enunciado pede para criar um algoritmo que receba uma lista (ou vetor) de valores e ordene esses valores em ordem decrescente, ou seja, do maior para o menor. O conteúdo principal envolve técnicas de ordenação baseadas em comparações e trocas de elementos.

Passo 2

Uma das técnicas mais simples de ordenação é o bubble sort (ou ordenação por bolha), que funciona repetindo várias vezes o percurso pelo vetor, comparando pares de elementos adjacentes e trocando-os quando estiverem na ordem errada. Aqui a “ordem errada” significa que o valor da esquerda é menor que o da direita, pois queremos decrescente.

Passo 3

A cada passagem (ou “passo externo”) pelo vetor, o maior elemento não-posicionado “borbulha” até o início do vetor, garantindo que depois de k passagens os k primeiros elementos já estejam em posição correta. Para detectar que o vetor já está ordenado sem precisar completar todas as passagens, podemos usar uma flag que indique se houve alguma troca na passagem atual.

Passo 4

Com base nisso, vamos escrever o pseudocódigo do algoritmo bubble sort adaptado para ordenação decrescente.
Segue o algoritmo em pseudocódigo:

Resposta

Algoritmo OrdenaçãoDecrescente(A[1…n])
// A é o vetor de entrada com n elementos
para i de 1 até n-1 faça
trocou ← falso
para j de 1 até n-i faça
se A[j] < A[j+1] então
// trocar para manter decrescente
temp ← A[j]
A[j] ← A[j+1]
A[j+1] ← temp
trocou ← verdadeiro
fim se
fim para
se não trocou então
interrompa // já está ordenado
fim se
fim para
retorne A
FimAlgoritmo

Exercícios relacionados