二分搜索算法:从给定的已经按照升序排好序的n个元素中查找所需的元素,比较简单,直接上代码。
def BinarySearch(a,x,l,r):
"""
分治法,二分搜索算法,返回元素所在位置
a:已经按照升序排好序的数组或列表
x:待查找的元素
l:左端
r:右端
"""
while(r >= l):
m = int((l+r)/2)
if(x == a[m]):
return m
elif(x < a[m]):
r = m-1
else:
l = m+1
if __name__ == '__main__':
a = [1,2,3,4,5,6,7,8,9]
m = BinarySearch(a,4,0,len(a)-1)
print(m)