Ordenação de Listas

Publicado por Marcio Cardoso (última atualização em 10/03/2012)

[ Hits: 5.916 ]

Download ordenação.txt




Segue shell que ordena a lista em ordem crescente.

  



Esconder código-fonte

#!/bin/ksh
clear
typeset -i i=0
echo "Digite 5 numeros inteiros fora da sequencia!"
while (( $i == 0 )); do
        echo "Digite primeiro numero"
        read valor[0]
        echo "Digite segundo numero"
        read valor[1]
        echo "Digite terceiro numero"
        read valor[2]
        echo "Digite quarto numero"
        read valor[3]
        echo "Digite quinto numero"
        read valor[4]
        if((${valor[0]} < ${valor[1]} && ${valor[1]} < ${valor[2]} && ${valor[2]} < ${valor[3]} && ${valor[3]} < ${valor[4]})); then
                echo "Sequencia ordenada digite novamente os valores"
        else
                i=$i+1
        fi
done
typeset -i i=0
typeset -i j=0
typeset -i temp=0
while (( $i < 4 )); do
        while (( $j < 4 )); do
                if ((${valor[$j+1]} < ${valor[$j]} )); then
                        temp=${valor[$j]}
                        valor[$j]=${valor[$j+1]}
                        valor[$j+1]=$temp
                fi
        j=$j+1
        done
i=$i+1
j=0
done
x=0;
while [ $x != ${#valor[@]} ]; do
        echo "* "${valor[$x]}" sequencia ordenada "
        let "x = x +1"
done

Scripts recomendados

Monitora HD e envia e-mail caso atinja a um limite utilizado

Utilitário para redes

Instalador Automático de ZoneMinder em Ubuntu

lixeira

Bloquear contas em servidor Zimbra após 45 dias


  

Comentários
[1] Comentário enviado por julio_hoffimann em 10/03/2012 - 19:27h

Marcio,

Lembre-se que o poder do Bash está no fácil acesso aos programas externos:

echo 'Digite numeros separados por espaço:'
read -a array
ordered=`echo ${array[@]} | tr ' ' '\n' | sort -n | tr '\n' ' '`
echo ${ordered}

As duas linhas acima fazem o mesmo trabalho e funcionam para listas de tamanho arbitrário.

Abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts