Método quick sort: Ordenamiento por método Quick Sort.php

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