基本思想:
- 首先将元素存储在列表里,顺序排列。
- 给定指针pow与hight对应列表起始位置。
- 第一次利用前后指针,找到中间位置元素
- 中间元素大于所找元素---->让队尾指针指向中间,在前半段再取中间,在再对比查找。
- 中间匀速小于所找元素---->让队首执政指向中间,在后半段再取中间,再对比查找。
- 依次循环到找到时,退出循环
data=list(input("请输入有序数列:"))
pow=0
hight=len(data)-1
key=int(input("请输入要查找的数字:"))
while pow <= hight:
mid = int(pow+(hight-pow)/2)
if int(data[mid]) > key:
hight = mid - 1
elif int(data[mid]) < key:
pow = mid + 1
else:
print("数值{}在数据中的索引为{}".format(key,mid))
break
else:
print("{}不在该数组中".format(key))