问题描述
在列表ls = [1, 3, 5, 7, 9, 11,13]中利用二分法查找数字5所在的下标
代码如下:
# encoding = 'utf-8'
# 利用二分法查找有序数组中的某一个值
def findNum(left, right, ls, num):
'''
:param num: 被查找的数字
:param ls: 列表
:return: num所在的位置
'''
mid = (left + right)//2
if ls[mid] == num:
return mid
else:
if num > ls[mid]:
left = mid
if num < ls[mid]:
right = mid
return findNum(left, right, ls, num)
ls = [1, 3, 5, 7, 9, 11, 13]
num = 5
index = findNum(0, len(ls), ls, num)
print(index)
运行结果:2