说明
二分法适用于查找有序数据
代码
# -*- coding: utf-8 -*-
def search_(array, num):
min = 0
max = len(array) - 1
count = 0
while min <= max:
count += 1
index = (min + max) // 2
print("这次的索引是:{},对比的是{}".format(index, array[index]))
if num > array[index]:
min = index + 1
elif num == array[index]:
print("找到了,一个找了{}次".format(count))
break
else:
max = index - 1
if __name__ == '__main__':
# 0 1 2 3 4 5 6 7 8 9 10 11
search_([1, 2, 3, 4, 5, 6, 77, 87, 91, 98, 99, 101], 99)