折半排序 (稳定的排序)

$arr=array('','7','9','11','2','5','13','10','14','12');
    $n=count($arr);
     for($i=2;$i<$n;$i++)
     {
           $low=1;$high=$i-1;
           $arr[0]=$arr[$i];
           while($low<=$high)
           {
               $m=intval(($low+$high)/2);
               if($arr[$m]>$arr[0])   
                   $high=$m-1;
               else
                   $low=$m+1;
           }
           for($j=$i-1;$j>=$high+1;$j--)
           {
                 $arr[$j+1]=$arr[$j];
           }
           $arr[$high+1]=$arr[0];
     }
     print_r($arr);

原文地址:https://www.cnblogs.com/cwl168/p/3804936.html