Código Bash – Ordenamiento Shell


El siguiente código trata del método de ordenamiento Shell en bash:

#!/bin/bash
function shell {
	lista=$1
	tam=${#lista[@]}

        for inc in $(seq 1 $[$[inc*3]+1] $[$tam-1]) ; do
            while [ $inc -gt 0 ] ; do
                  for i in $(seq $inc $[$tam-1]) ; do
                        j=$i
                        temp=${lista[$i]}
                        while [[ $j -ge $inc && ${lista[$[$j-$inc]]} -gt $temp ]] ; do
                                lista[$j]=${lista[$[$j-$inc]]}
                                j=$[$j-$inc]
                        done
                        lista[$j]=$temp
                  done
                  inc=$[$inc/2]
            done
        done
}

lista=(5 4 3 2 1)

shell $lista

for i in ${lista[@]};do	echo $i; done
Anuncios

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s