function drank(&$data){ $num=count($data); for($i=1;$i<$num;$i++){ for($j=$i;$j>0;$j--){ if($data[$j]<$data[$j-1]){ $data[$j]+=$data[$j-1]; $data[$j-1]=$data[$j]-$data[$j-1]; $data[$j]=$data[$j]-$data[$j-1]; } } } } function brank(&$data){ $num=count($data); for($i=1;$i<$num;$i++){ $left=0; $right=$i-1; $tmp=$data[$i]; while($left<=$right){ $mid=floor(($left+$right)/2); if($data[$i]<$data[$mid]){ $right=$mid-1; }else{ $left=$mid+1; } } for($j=$i-1;$j>=$left;$j--) $data[$j+1]=$data[$j]; $data[$left]=$tmp; } } function drank(&$data){ $num=count($data); for($i=1;$i<$num;$i++){ for($j=$i;$j>0;$j--){ if($data[$j]<$data[$j-1]){ $data[$j]+=$data[$j-1]; $data[$j-1]=$data[$j]-$data[$j-1]; $data[$j]=$data[$j]-$data[$j-1]; } } } } function brank(&$data){ $num=count($data); for($i=1;$i<$num;$i++){ $left=0; $right=$i-1; $tmp=$data[$i]; while($left<=$right){ $mid=floor(($left+$right)/2); if($data[$i]<$data[$mid]){ $right=$mid-1; }else{ $left=$mid+1; } } for($j=$i-1;$j>=$left;$j--) $data[$j+1]=$data[$j]; $data[$left]=$tmp; } } function qrank($data,$start,$end){ $i=$start; $j=$end; if($end>$start){ $tmp=$data[$i]; do{ while($data[$j]>$tmp && $j>$i) $j--; if($j>$i){$data[$i]=$data[$j];$i++;} while($data[$i]<$tmp && $j>$i) $i++; if($j>$i){$data[$j]=$data[$i];$j--;} }while($i!=$j); $data[$i]=$tmp; qrank(&$data,$start,$i-1); qrank(&$data,$i+1,$end); } } function srank(&$data){ $num=count($data); for($i=0;$i<$num;$i++){ $k=$i; for($j=$i+1;$j<$num;$j++){ if($data[$j]<$data[$k]) $k=$j; if($k!=$i){ $data[$i]=$data[$i]+$data[$k]; $data[$k]=$data[$i]-$data[$k]; $data[$i]=$data[$i]-$data[$k]; } } } }