<?php $array=array(2,5,3,2,7,8,9,0,6,7); echo '<pre>'; print_r($array); /** * 直接插入排序 0.1 */ function insertSort(&$array){ for($i=1,$len=count($array);$i<$len;$i++){ $j=$i; $tmp=$array[$j]; if($tmp<$array[$j-1]){ while($j>=0 && $array[$j-1]>$tmp){ $array[$j]=$array[$j-1]; $j--; } $array[$j]=$tmp; } } }/** * 冒泡排序 0.25 */ function bubblingSort(&$array){ for($i=0,$len=count($array);$i<$len-1;$i++){ for($j=$i+1;$j<$len;$j++){ if($array[$j]<$array[$i]){ $tmp=$array[$i]; $array[$i]=$array[$j]; $array[$j]=$tmp; } } } } /** * 快速排序 0.65 */ function quickSort($array){ $len=count($array); if($len<=1) return $array; $key=$array[0]; $left=$right=array(); for($i=1;$i<$len;$i++){ if($array[$i]<$key){ $left[]=$array[$i]; }else{ $right[]=$array[$i]; } } $left=quickSort($left); $right=quickSort($right); return array_merge($left,array($key),$right); } /** * 二分查找法 */ function binarySearch($array,$search){ $start=0; $end=count($array)-1; while($start<=$end){ $mid=ceil(($start+$end)/2); if($array[$mid]==$search){ return true; }elseif($array[$mid]<$search){ $start=$mid+1; }else{ $end=$mid-1; } } return false; } //debug_zval_dump(binarySearch($array,9)); ?>