Código Bash – Ordenamiento Quicksort

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

#!/bin/bash
function quicksort {
	lista=$1
        izq=$2
        der=$3

        i=$izq;
        j=$der;
        x=${lista[$[$[$izq + $der]/2]]}

        while [ $i -le $j ] ; do
		while [[ ${lista[$i]} -lt $x && $j -le $der ]] ; do
			i=$[$i+1]
		done

		while [[ $x -lt ${lista[$j]} && $j -gt $izq ]] ; do
			j=$[$j-1]
		done

		if [ $i -le $j ] ; then
			aus=${lista[$i]}; lista[$i]=${lista[$j]}; lista[$j]=$aus;
			i=$[$i+1];  j=$[$j-1]
		fi
	done

	if [ $izq -lt $j ] ; then
		quicksort $lista $izq $j
        fi
	if [ $i -lt $der ] ; then
		quicksort $lista $i $der
        fi
}

lista=(5 4 3 2 1)

quicksort $lista 0 $[${#lista[@]}-1]

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

3 thoughts on “Código Bash – Ordenamiento Quicksort

  1. tenia dos hijos, pero cuando vi este programa dos de ellos se murieron y dos minutos mas tarde me llamaron del veterinario diciendo que mi perro se habia escapado de casa y se había convertido en un gurú de las criptomonedas😭

Deja un comentario