使用二进制搜索(找到中间点并相应地丢弃相关列表),我需要确定步骤数和正确方法在以下列表中找到名称“TARYN”。
下面显示了两种方法。哪个是对的?我假设第二个......但我不确定。有人可以解释哪种方法最合适以及原因。
ANNE BEN CLIVE DAVE ETHAN GAL STEVE TARYN REUBEN YVONNE
方法1
阶段1:MP =(0 + 9)/ 2 = 4.5 = 4是/否:否
丢弃4及以下
阶段2:MP =(5 + 9)/ 2 = 7是/否:是找不到
找到元素需要多少步骤?的 2
方法2 (请注意,有10个元素)
阶段1:MP = 10 + 1/2 = 5.5 = 6.
阶段2:MP = 3 + 1/2 = 2(Reuben)
阶段3:MP = 1 + 1/2 = 1(发现Taryn)
找到元素需要多少步骤? 3
换句话说,我的假设是第一种方法是INCORRECT,第二种方法是正确的。有人可以评论或澄清/证明吗?