# -!- coding: utf-8 -!-
# !/usr/bin/env python 3.6.3
# author: Vivian
# time: 2018/9/22
# 是排序后的序列,且支持下标索引的顺序表
# 二分查找适用对象:有序顺序表
def binary_search(alist, data):
# if len(alist):#查找的终止递归条件
# mid = (len(alist)) // 2
# if alist[mid] == data:
# return True
# elif data < alist[mid]:
# return binary_search(alist[:, mid], data)
# else:
# return binary_search(alist[mid + 1:], data)
# else:
# return False
#为何我编写的上标越界,由于使用了None,区别于node=None
mid = (len(alist)) // 2
#if len(alist) ==0:#终止的失败条件,正确
#if alist == []:#正确
#if alist is No=ne:这种是错误表达
if len(alist) == 0: # 终止的失败条件,正确
return False
elif data==alist[mid]:#成功条件
return True
elif data < alist[mid]:#递归条件
return binary_search(alist[:, mid], data)
else:
return binary_search(alist[mid + 1:], data)
if __name__=='__main__':
a=[0,1,2,3,4,5,6,7,8,9]
result1=binary_search(a,8)
print(result1)
result2=binary_search(a,100)
print(result2)
二分查找Python3 实现
猜你喜欢
转载自blog.csdn.net/liangjiubujiu/article/details/82811308
今日推荐
周排行