El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.
El código realiza un Ordenamiento de datos numéricos haciendo uso del Método Quicksort:
<?php function quicksort($A, $izq, $der ) { $i = $izq; $j = $der; $x = $A[ ($izq + $der) /2 ]; do{ while( ($A[$i] < $x) && ($j <= $der) ) { $i++; } while( ($x < $A[$j]) && ($j > $izq) ) { $j--; } if( $i <= $j ) { $aux = $A[$i]; $A[$i] = $A[$j]; $A[$j] = $aux; $i++; $j--; } }while( $i <= $j ); if( $izq < $j ) quicksort( $A, $izq, $j ); if( $i < $der ) quicksort( $A, $i, $der ); return $A; } function main() { $VectorA=array(5,4,3,2,1); $VectorB=quicksort($VectorA,0,sizeof($VectorA)-1); for($i=0;$i<sizeof($VectorB);$i++) echo $VectorB[$i]."\n"; } main(); ?>
Este método no funciona con arreglos desordenados, solo ordena siempre y cuando el número de elemento sean 5-6 y estén en secuencia inversa.
por que no funciona 😛
Disculpa, intento hacer un ordenamiento de números aleatorios, ya saque los números, ahora solo me falta ordenarlos, ¿Qué puedo hcaer?
no funciona el algoritmo, si el array contiene, en este orden, {5,6,4,3,2,1} imprime en pantalla {1,2,3,4,6,5}