- Utilize qualquer um dos algoritmos estudados para ordenar um vetor de strings. Os alunos devem implementar a comparação entre strings e observar como o algoritmo se comporta com esse tipo de dado.
Passo 1
Beleza, vamos lá! O exercício pede para a gente usar um dos algoritmos que estudamos pra ordenar um vetor de strings. Então, vamos precisar falar sobre algoritmos de ordenação, como comparar strings e ver como o algoritmo escolhido se comporta com esse tipo de dado. Vou escolher o Bubble Sort pra resolver isso, porque ele é simples de entender e implementar.
Passo 2
Primeiro, vamos entender como comparar duas strings. A ideia é comparar letra por letra, da esquerda para a direita, baseado na ordem alfabética. Por exemplo, “banana” vem antes de “maçã” porque ‘b’ vem antes de ‘m’.
Passo 3
Agora, vamos lembrar como funciona o Bubble Sort. Esse algoritmo percorre o vetor várias vezes, e em cada passagem ele compara pares de elementos adjacentes. Se estiverem na ordem errada, ele troca eles. Isso se repete até que todo o vetor esteja ordenado.
Passo 4
Vamos implementar o Bubble Sort para um vetor de strings. A gente vai precisar de um loop para as passagens e outro loop interno para comparar e trocar as strings se necessário.
Passo 5
No código, vamos usar a função de comparação de strings do Python, que já faz a comparação lexicográfica automaticamente. Mas, para entender melhor, vou mostrar como a comparação funciona.
Passo 6
Vamos testar nosso algoritmo com um exemplo de vetor de strings para ver se ele ordena certinho.
Resposta
def bubble_sort_strings(vetor):
n = len(vetor)
for i in range(n):
# Flag para verificar se houve troca na passagem
trocou = False
for j in range(0, n-i-1):
if vetor[j] > vetor[j+1]:
# Troca as strings de posição
vetor[j], vetor[j+1] = vetor[j+1], vetor[j]
trocou = True
# Se não houve troca, o vetor já está ordenado
if not trocou:
break
return vetor
# Exemplo de uso
vetor_de_strings = ["maçã", "banana", "laranja", "abacaxi", "kiwi"]
vetor_ordenado = bubble_sort_strings(vetor_de_strings)
print("Vetor Ordenado:", vetor_ordenado)
Saída:
Vetor Ordenado: ['abacaxi', 'banana', 'kiwi', 'laranja', 'maçã']