
fbruno
(usa Ubuntu)
Enviado em 22/06/2022 - 20:31h
Preciso fazer um código que permita o usuário digitar 10 numeros OU strings e ordenar com o método BUBBLE SORT. A parte dos números está executando bem, mas a ordenação das strings não funciona! Alguém pode me ajudar??
Abaixo segue o código que rascunhei:
#!/bin/bash
echo "Digite N para números ou S para strings:"
read -n1 opcao
case $opcao in
"N" | "n") {
# Entrada dos números
echo
echo -e "\nDigite os números aqui:"
for (( i = 0; i < 10; i++ ))
do
read num[$i]
done
# Bubble Sort
for (( i = 0; i < 10 ; i++ ))
do
for (( j = $i; j < 10; j++ ))
do
if [ ${num[$i]} -gt ${num[$j]} ]; then
t=${num[$i]}
num[$i]=${num[$j]}
num[$j]=$t
fi
done
done
# Números na ordem
echo -e "\nNúmeros organizados pelo método Bubble Sort: "
for (( i=0; i < 10; i++ ))
do
echo ${num[$i]}
done
}
;;
"S" | "s") {
# Entrada das palavras
echo
echo -e "\nDigite as palavras aqui:"
for (( i = 0; i < 10; i++ ))
do
read plv[$i]
done
# Bubble Sort
for (( i = 0; i < 10; i++ ))
do
for (( j = $i; j < 10; j++ ))
do
if [ ${plv[$i]} > ${plv[$j]} ] ; then
t=${plv[$i]}
plv[$i]=${plv[$j]}
plv[$j]=$t
fi
done
done
# Palavras na ordem
echo -e "\nPalavras organizadas pelo método Bubble Sort: "
for (( i= 0; i < 10; i++ ))
do
echo ${plv[$i]}
done
}
;;
*)
echo
echo -e "\nOpção inválida."
echo -e "Finalizando.\n"
esac