Método Inserción Binaria: Ordenamiento por inserción Binaria.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 de Inserción Binaria:

<?php
 
    function insercionBinaria($A,$n)
    {
            for($i=1;$i<$n;$i++)
            {
                $aux = $A[$i];
                $izq=0;
                $der=$i-1;
 
                while($izq<=$der)
                {
                    $m=(($izq+$der)/2);
                    if ($aux<$A[$m])
                        $der=$m-1;
                    else
                        $izq=$m+1;
                }
                $j=$i-1;
 
                while($j>=$izq)
                {
                    $A[$j+1]=$A[$j];
                    $j=$j-1;
                }
                $A[$izq]=$aux;
            }
 
      return $A;
    }
 
    function main()
    {
 
        $VectorA=array(5,4,3,2,1);
 
        $VectorB=insercionBinaria($VectorA,sizeof($VectorA));
 
        for($i=0;$i<sizeof($VectorB);$i++)
            echo $VectorB[$i]."\n";
 
    }
 
    main();
?>