二分查找偶数
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的下取整
以上是关于二分查找偶数的主要内容,如果未能解决你的问题,请参考以下文章