数据结构:二分查找python(一)
思路:二分查找仅仅适应于有序的数组,数组内部元素要是排好序的,整个过程就是不断跟中间元素进行比较,等于直接输出true,大于中间元素的话,说明可能在左边,我们可以将左边看成一个新数组,再找中间元素进行比较;不断循环进行。当一开始,找的数大于中间元素,我们把右边看成一部分,重新找中间元素进行比较,不断循环。上面两部分循环结束还没有的话,该元素不在数组当中。
我们先求数组中间元素所在位置即(start+last)//2,不断折半过程也是这样求,在原来数组上进行操作
循环条件为:start<=last,直接到一个元素之后才退出。
def binary_sort(alist,item):
start=0
last=len(alist)-1
while start<=last:
n=(start+last)//2
if alist[n]==item:
return True
elif alist[n]>item:
last=n-1
else:
start=start+1
return False
a=[10,26,36,44,59,88,97,113,156]
print(binary_sort(a,10))
print(binary_sort(a,89))
结果:

浙公网安备 33010602011771号