堆排序:
function heapadjust($array,$i,$n){
for($tmp=$array[$i];(2*$i+1)<$n;$i=$child){
$child=(2*$i+1);
if($child!=$n-1 && $array[$child+1]> $array[$child])
$child++;
if($tmp<$array[$child])
$array[$i]=$array[$child];
else
break;
}
$array[$i]=$tmp;
}
function heap_sort($array){
$count=count($array);
for($i=$count/2;$i>=0;$i--){
heapadjust($array,$i,$count);
}
for($i=$count-1;$i>0;$i--){
$tmp=$array[0];
$array[0]=$array[$i];
$array[$i]=$tmp;
heapadjust($array,0,$i);
}
return $array;
}
$arr=array(44,14,55,32,876,32,65,11);
$res=heap_sort($arr);
foreach ($res as $key => $value){
echo $key." ".$value."<br/>";
}