def bi_search(arr
, t
):
if not arr
or t
< arr
[0] or t
> arr
[-1]:
return None
begin
, end
= 0, len(arr
) - 1
while begin
<= end
:
mid
= begin
+ (end
- begin
) // 2
if t
== arr
[mid
]:
return mid
elif t
< arr
[mid
]:
end
= mid
- 1
elif t
> arr
[mid
]:
begin
= mid
+ 1
return None
arr1
= [1, 2, 2, 4, 5, 7, 7, 8, 9, 9, 10]
arr2
= [2]
arr3
= [2, 2]
arr4
= []
for arr
in [arr1
, arr2
, arr3
, arr4
]:
print(bi_search
(arr
, 10))
区间思维
转载请注明原文地址:https://ipadbbs.8miu.com/read-19852.html