基本思想:
- 首先將元素存儲在列表裏,順序排列。
- 給定指針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))