# -*- coding:utf-8 -*-
# 写一下二分查找,时间复杂度为O(logn), n为查询元素的个数
l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
# 二分查找
def bisearch(l, find_obj):
length = len(l)
find_offect = length // 2
print(find_offect)
if find_obj > l[find_offect]:
ret = bisearch(l[find_offect:], find_obj)
return ret
elif find_obj < l[find_offect]:
ret = bisearch(l[:find_offect-1], find_obj)
return ret
else:
return l[find_offect]
print(bisearch(l1, 10))
# 原始方法
for i in l1:
print(i)
if i == 10:
print('%s' % i)
exit(0)
5
3
1
10
1
2
3
4
5
6
7
8
9
10
10
网友评论