Faça um programa que receba como entradas uma lista de nomes em ordem aleatória e ordene essa lista em ordem alfabética.

Passo 1

Resumo do enunciado: o programa deve receber uma lista de nomes em ordem aleatória e devolver essa lista em ordem alfabética.
Conteúdo da matéria: algoritmos de ordenação e comparação de strings.
O que vamos precisar:
• Saber comparar duas strings para dizer qual vem primeiro em “ordem alfabética” (lexicográfica).
• Usar laços (loops) para percorrer a lista várias vezes.

Passo 2

Antes de codar, entenda o que é “ordenar”.
  • Ordenar uma lista significa reorganizar seus elementos de tal forma que cada elemento fique na posição correta segundo algum critério (aqui, ordem alfabética).
  • Comparação de strings: fazemos letra a letra, levando em conta a tabela Unicode. Por exemplo, “Ana” < “Bia” porque ‘A’ vem antes de ‘B’.

Passo 3

Vamos escolher um algoritmo simples, o bubble sort. A ideia geral é:
  1. Percorrer a lista de 0 até n–2 (onde n é o número de nomes).
  2. Para cada par de índices i e i+1, se lista[i] vier depois de lista[i+1] em ordem alfabética, troque-os de lugar.
  3. Repetir esse processo n–1 vezes para ter certeza de que tudo ficou no lugar.
    Teoricamente, o bubble sort tem complexidade de tempo O(n^2), ou seja, o número de comparações cresce proporcionalmente ao quadrado da quantidade de nomes.

Passo 4

Vamos traduzir isso em Python (comentado linha a linha para não pular nada):
# Recebe vários nomes, separados por vírgula, e transforma em lista
entrada = input("Digite os nomes separados por vírgula: ")
lista = [nome.strip() for nome in entrada.split(",")]

n = len(lista)                   # número de nomes
# Estrutura do bubble sort:
for pass_num in range(n - 1):    # vamos dar n-1 “passadas” na lista
    for i in range(n - 1 - pass_num):
        # compara lista[i] e lista[i+1]
        if lista[i] > lista[i + 1]:
            # se estiverem fora de ordem, troca
            lista[i], lista[i + 1] = lista[i + 1], lista[i]

# Depois de pronto, basta mostrar o resultado
print("Lista ordenada:")
for nome in lista:
    print(nome)

Passo 5

Teste rápido com exemplo:
Se a entrada for
Carlos, Ana, Bruno
o programa faz:
1ª passada: compara Carlos/Ana → troca → [Ana, Carlos, Bruno]
compara Carlos/Bruno → troca → [Ana, Bruno, Carlos]
2ª passada: compara Ana/Bruno → ok, fica → [Ana, Bruno, Carlos]
2 passadas já bastam (n-1 = 2), e o resultado é:
Ana
Bruno
Carlos

Resposta

Segue o código completo em Python que lê uma lista de nomes, aplica o bubble sort para ordenar alfabeticamente e exibe o resultado final.

Exercícios relacionados