日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

折半查找python实现

發布時間:2025/3/15 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 折半查找python实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

折半查找python實現

折半查找是常用的查找方法(在按大小順序排列中的數組或者列表中更是如此),與傳統的順序查找相比,它查找的效率更高。

算法思想

算法的思想很直接,也就是先把第一個和最后一個作為作為low和high的值,然后將要查找的數字與這兩個位置對應的數值進行比較(當然,為了保證算法穩健性,先判斷要查找的數字在不在數組或列表中,如果不存在則提示重新輸入)。

算法操作步驟

設給定的數組為A,元素為A[i],元素個數一共有n個,其中0<=i<=n-1,
1、設置查找中值A[mid],中值位置為mid=(low+high)/2;
2、如果要查找的值與A[mid]相等,那么就把這個值打印出來,算法結束;如果A[mid]的值較小,則設置low=mid+1;如果A[mid]的值較大,則設置high=mid-1;
3、重復第1、第2步驟,直到查找結束為止。
python代碼如下:

def halffind(a,c,low,high): mid=(low+high)//2if c == a[mid]:return mid+1elif low>high:return Falseelif c>a[mid]:return halffind(a,c,low+1,high)else:return halffind(a,c,low,high-1)if __name__ == "__main__":a=[56,52,-96,-53,23,-789,520] #測試案例c=int(input('Please enter the number you want to find:'))if c not in a:print('當前輸入元素不在列表中!')else:print('The position of the requried number in the list is:')answer=halffind(a,c,0,len(a)-1) print(answer)

總結

以上是生活随笔為你收集整理的折半查找python实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。