python初级之路-递归实现二分法

 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)
posted @ 2020-08-27 17:30  Zombie☠️  阅读(138)  评论(0)    收藏  举报