Método Heap Sort: Ordenamiento método Heap 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 Heapsort:

<?php
 
    function heapsort($A,$n)
    {
 
        for($k=$n-1;$k>=0;$k--)
        {
                for($i=1;$i<=$k;$i++)
                {
                        $item=$A[$i];
                        $j=$i/2;
                        while($j>0 && $A[$j]<$item)
                        {
                                $A[$i]=$A[$j];
                                $i=$j;
                                $j=$j/2;
                        }
                        $A[$i]=$item;
                }
                $temp=$A[0];
                $A[0]=$A[$k];
                $A[$k]=$temp;
        }
 
      return $A;
    }
 
    function main()
    {
 
        $VectorA=array(5,4,3,2,1);
 
        $VectorB=heapsort($VectorA,sizeof($VectorA));
 
        for($i=0;$i<sizeof($VectorB);$i++)
            echo $VectorB[$i]."\n";
 
    }
 
    main();
?>