Código PHP – Ordenamiento Quicksort

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();
?>

4 thoughts on “Código PHP – Ordenamiento Quicksort

Deja un comentario