二分查找使用前提:1)存储在数组中(数组可以实现随机读取);2)数组元素有序(升序或降序);3)数组元素没有重复
时间复杂度:logn。【log8=3 ,, log16=4】(这里的log是以2为底的!!!)
程序是写完源代码后,计算机编译后得到的可执行文件。
//二分查找 function binarySearch($arr,$k,$low=0,$high=0){ $len = count($arr); //判断是不是第一次调用 if($len != 0 && $high == 0){ $high = $len; } if($low<=$high){ $mid = intval(($low+$high)/2); if($arr[$mid] == $k){ return $mid; }elseif($k<$arr[$mid]){ return binarySearch($arr,$k,$low,$mid-1); }else{ return binarySearch($arr,$k,$mid+1,$high); } } return '没有要查找的值'; } $arr = [1,2,3,5,7,9,15,16,20]; echo '您要找的值在数组中下标为'.binarySearch($arr,9);