python——二分查找

基本思想:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章