Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 二进制搜索法-如何找到中点_Algorithm_Search_Binary_Point - Fatal编程技术网

Algorithm 二进制搜索法-如何找到中点

Algorithm 二进制搜索法-如何找到中点,algorithm,search,binary,point,Algorithm,Search,Binary,Point,使用二进制搜索(找到中点并相应地丢弃相关列表),我需要确定在以下列表中查找名称“TARYN”所需的步数和正确方法 有两种方法如下所示。哪个是正确的?我猜是第二个…但不确定。有人能解释一下哪种方法最合适,为什么 安妮·本·克莱夫·戴夫·伊桑·盖尔·史蒂夫·塔林·鲁本·伊冯 方法1 第1阶段:MP=(0+9)/2=4.5=4是/否:否 丢弃4个或更少 第2阶段:MP=(5+9)/2=7是/否:找到是 找到元素需要多少步骤2 方法2(注意有10个元素) 第一阶段:MP=10+1/2=5.5=6 第二

使用二进制搜索(找到中点并相应地丢弃相关列表),我需要确定在以下列表中查找名称“TARYN”所需的步数正确方法

有两种方法如下所示。哪个是正确的?我猜是第二个…但不确定。有人能解释一下哪种方法最合适,为什么

安妮·本·克莱夫·戴夫·伊桑·盖尔·史蒂夫·塔林·鲁本·伊冯

方法1

第1阶段:MP=(0+9)/2=4.5=4是/否:否

丢弃4个或更少

第2阶段:MP=(5+9)/2=7是/否:找到是

找到元素需要多少步骤2


方法2(注意有10个元素)

第一阶段:MP=10+1/2=5.5=6

第二阶段:MP=3+1/2=2(鲁本)

第三阶段:MP=1+1/2=1(塔林发现)

找到元素需要多少步骤3


换言之,我的假设是第一种方法是错误的,第二种方法是正确的。有人可以评论或澄清/证明吗?

为什么在方法1中将
4.5
四舍五入到
4
,在方法2中将
5.5
四舍五入到
6
?如果使用方法2,则需要重新索引数组中的元素,从而增加空间complexity@SandeshGuptaOP用了半轮来回答一个均匀但很好的问题,想知道为什么……
我的假设是第一种方法不正确(我看到的是步骤,而不是方法)是什么让你对每种方法都进行假设?(鲁本在列表中不是不合适吗?)。