php二分查找
//
递归版本
function bin_sch($arr,$low,$high,$val) { if($low<$high){ $mid = intval(($low+$high)/2); if($val == $arr[$mid]){ return $mid; }else if($val < $arr[$mid]){ return bin_sch($arr,$low,$mid-1,$val); }else{ return bin_sch($arr,$mid+1,$high,$val); } } return -1; }
//
非递归版本
function bin_sch($arr,$val) { $num = count($arr); $low = 0; $high = $c - 1; while($low <= $high){ $mid = intval(($low + $high)/2); if($val < $arr[$mid]){ $mid++; }else if($val > $arr[mid]){ $high--; }else{ return $mid; } } return -1; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。