二分查找偶数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找偶数相关的知识,希望对你有一定的参考价值。

用二分法查找,如果碰到偶数个数怎么办?第一次折半,中间的数是取一个,还是两个?
例如:查找11
序列为
9 12 15 18 20 25 30 38
能不能把具体的步骤说一下?
依您这样说,奇数怎么办?
例如:我要查找6,序列为
1 2 3 4 5 6 7
本来第一次是4和6比
按您的意思,N/2,取整,那岂不是用3和6先比?

奇数的时候:就是中间值

偶数的时候:取n/2取整,实际上剩下的序列是 索引为取整左边的序列。
# 二分查找
# 方法一:递归
def binary_search(alist, item):
# 数列长度
n = len(alist)
# 递归的结束条件
if n == 0:
return False

# 中间值
# // 是取整
mid = n // 2

if item == alist[mid]:
return True
elif item < alist[mid]:
return binary_search(alist[0:mid], item)
elif item > alist[mid]:
return binary_search(alist[mid + 1:], item)

if __name__ == '__main__':
alist = [1, 2, 3, 4, 5]
print(binary_search(alist, 3))
参考技术A N/2的下取整

以上是关于二分查找偶数的主要内容,如果未能解决你的问题,请参考以下文章

连续区间的二分查找

python算法:二分查找

Task 04:数组二分查找

异序二分查找 二分查找方程根 二分查找重复元素最后一个

每周算法小知识之二分查找

查找算法之“二分查找”