1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3
4 # 通过递归方法,在一个庞大的列表中查找一个数是否在该列表中
5 def binary_search(data_soure, find_num):
6 mid = int(len(data_soure)/2)
7 if len(data_soure) >= 1:
8 if data_soure[mid] > find_num:
9 print("要查询的数[%s]在[%s]左边。" % (find_num, data_soure[mid]))
10 binary_search(data_soure[:mid], find_num)
11 elif data_soure[mid] < find_num:
12 print("要查询的数[%s]在[%s]右边。" % (find_num, data_soure[mid]))
13 binary_search(data_soure[mid:], find_num)
14 else:
15 print("已查询到:[%s]" % data_soure[mid])
16 else:
17 print("未在该列表中查询到[%s]" % find_num)
18
19 if __name__ == "__main__":
20 data = list(range(1,600000))
21 binary_search(data, 65535)