php顺序查找、折半查找小结.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?php $arr=array(26,34,78,21,20,6,7,21,9,-2); //顺序查找 function search($arr,$key){ $flag=false; for($i=0;$icount($arr);++$i){ if($key==$arr[$i]){ $j=$i+1; //echo $j; echo 要查询的字.$key.为第{$j}个字; $flag=true; break; } } if($flag==false)echo 查不到此值; } $myarr=array(-1,2,9,14,18,20,24,24,40,50); function zheban($arr,$key){ $high=count($arr)- 1; $low=0; $keySite=binarysearch($arr,$key,$low,$high); return $keySite; } //折半查找循环实现 function binarysearch($arr,$key,$low,$high){ while($low=$high){//=啊!不是,我勒个去 $mid=round(($low+$high)/2);//取中间数后取整。 //echo $mid.br/; if($arr[$mid]$key){$low=$mid+1;} if($arr[$mid]$key){$high=$mid-1;} if($arr[$mid]==$key){ echo 查找成功.$key.在数组中的位置:.$mid;; break; } } if($low$high){ echo 查找不成功!; $mid=-1; }; return $mid; } //折半递归实现,方法2 取至hsp 老师讲义 function binarySearch1($arr,$findVal,$leftIndex,$rightIndex){ if($rightIndex$leftIndex){ echo 找不到该数; return ; } //找到中间这个数 $middleIndex=round(($rightIndex+$leftIndex)/2); //如果大于则,向后面找 if($findVal$arr[$middleIndex]){ binarySearch1($arr,$findVal,$middleIndex+1,$rightIndex); } //如果是小于中间这个数,则向前面找 else if($findVal$arr[$middleIndex]){ binarySearch1($arr,$findVal,$leftIndex,$middleIndex-1); } else{ echo 找到这个数 下标是 $middleIndex; } } search($arr,21); echo br/; binarySearch1($myarr,23,0,count($arr)-1); echo br/; $ww=zheban($myarr,23); echo br/.$ww; ?

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档