使用二分查找法,查找在一维数组中键值的对应键名, 例:查找 array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) 数组中键值为 12 的键名-笔试面试资料
这是qklbishe.com第6735 篇笔试面试资料
提供答案分析,通过本文《使用二分查找法,查找在一维数组中键值的对应键名, 例:查找 array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) 数组中键值为 12 的键名-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。
答案:
使用二分查找法,查找在一维数组中键值的对应键名,
例:查找 array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) 数组中键值为 12 的键名
/** * 二分查找法 * 使用前提是有序数组 */ public function binarySearch($value = 12, $arr = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ){ $low = 0; //数组下限下标 $high = count($arr)-1; //数组上限下标 // 注意凡是使用到while的时候,一定要防备无限循环的时候,注意终止循环的判断。 while($low <= $high){ //获取中间比较的中间下标(强制整形) $middle = intval(($low + $high)/2); if($value < $arr[$middle]){ //目标值 < 中间值 ,上限减1 $high = $middle - 1; }elseif ($value > $arr[$middle]){ //目标值 > 中间值 ,下限加1 $low = $middle + 1; }else{ return $middle; //目标值 = 中间值,匹配成功返回下标值 } } return -1; }
今天 15:51:42 回复(0)
文章部分来自互联网,侵权联系删除
www.qklbishe.com
区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站部分资料来自网络,侵权联系删除!资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 使用二分查找法,查找在一维数组中键值的对应键名, 例:查找 array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) 数组中键值为 12 的键名-笔试面试资料
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 使用二分查找法,查找在一维数组中键值的对应键名, 例:查找 array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) 数组中键值为 12 的键名-笔试面试资料