顺序查找:
<?php function shunxu(&$arr,$val){ $flag=false; for($i=0;$i<count($arr);$i++){ if($val==$arr[$i]){ echo "Number is founded:index is:".$i; $flag=true; break; } } if(!$flag){ echo "number does not exist"; } } $a=array(3,8,89,34,-13,3,-78,25); shunxu($a,-13); echo "<br/>"; shunxu($a,77);![]()
二分查找:
function binary(&$arr,$find,$left,$right){ if($left>$right){ echo "no number"; return; //return 必须有,否则可能报错; } $mid=round(($left+$right)/2); if($find>$arr[$mid]){ binary($arr,$find,$mid+1,$right); } elseif($find<$arr[$mid]) { binary($arr, $find, $left, $mid - 1); } else { echo "founded! index is:".$mid; } } $b=array(1,2,3,4,5,6,7,8,12,34,67); binary($b,374,0,count($b)-1);![]()