二分查找 Python

2023-07-28 21:23:48 浏览数 (2)

碎碎念念

假设我们要在一个升序排序的整型数组中查找某个特定的整数,如果找到了,返回该整数在数组中的索引号,如果没有找到,则返回-1。

我们首先看要找的数和数组中间的数的大小关系,如果相等,那么说明找到了,如果要找的数小于数组中间的数,那么我们再在数组的前半部分继续查找,如果大于,那么我们再在数组的后半部分继续查找,每次查找都将范围缩小一半,称为二分查找。

代码

代码语言:javascript复制
def binary_search(target,number,begin,end):
    middle=int((begin end)/2)
    if begin>end:
        return -1
    elif target==number[middle]:
        return middle
    elif target<number[middle]:
        return binary_search(target, number, begin, middle - 1)
    return binary_search(target, number, middle   1, end)
number=[0,1,2,3,4,5,6,7,8,9]
print(binary_search(5,number,0,9) 1)

0 人点赞