二分法
需要从该数字列表中找到我们想要的那个一个数字 如何做更高效???
nums=[-3,4,7,10,13,21,43,77,89]
find_num=10
# 若列表无序可使用sort方法
nums=[-3,4,13,10,-2,7,89]
nums.sort()
print(nums)
方案一:整体遍历效率太低
for num in nums:
if num == find_num:
print('find it')
break
# 若列表中存在元素过多该方法效率极低
方案二:二分法
def num_seach(find_num, l):
if len(l) == 0:
print('这个数不存在!')
return
mid_index = len(l) // 2
if find_num < l[mid_index]:
l = l[:mid_index]
num_seach(find_num, l)
elif find_num > l[mid_index]:
l = l[mid_index + 1:]
num_seach(find_num, l)
else:
print('找到这个数了!')
num_seach(34, l1)