二分查找

来源:互联网 发布:js创建json对象数组 编辑:程序博客网 时间:2024/06/08 02:34
<?phpfunction binary_search($array, $searchValue){$lowKey = 0; $highKey = count($array) - 1;$searchTimes = 0;$get = false;while(!$get){++$searchTimes;if ($searchValue < $array[$lowKey] || $searchValue > $array[$highKey]){break;}$midKey = ceil(($lowKey + $highKey)/ 2);if ($array[$midKey] == $searchValue){$get = true;break;}if ($lowKey == $highKey) break;if ($array[$midKey] > $searchValue){$highKey = $midKey - 1;}else{$lowKey = $midKey + 1;}}echo '查找次数为:' . $searchTimes . '<br />';echo $searchValue;echo $get ? '找到' : '未找到' . '<br />';;}$arr = array_merge(range(10, 100), range(102, 200));binary_search($arr , 101);binary_search($arr , 102);

显示结果:

查找次数为:8
101未找到
查找次数为:7
102找到

原创粉丝点击