二分法 找到数据\未找到数据,都需要加以判断,以下为python实现:
下面这个以递归实现,不是最简练的方法,但对判断找到和未找到数据,都做了判断实现。 #排序后,二分法排查,找不到key def func(a,key): min = 0 print("min=", min) max = len(a) - 1 print("max=", max) if a!=[]: center =int (min + max) // 2 print("center=", center) if a[center]>key: max=center-1 a=a[:max] return func(a,key) if a[center]<key: min=center+1 a=a[min:] return func(a,key) if a[center]==key: return print("找到key") else:return print("不存在") a=[1,2,3,5,100] print(a) func(a,6)
运行结果:
[1, 2, 3, 5, 100]
min= 0
max= 4
center= 2
min= 0
max= 1
center= 0