python二分法實(shí)現(xiàn)實(shí)例
1.算法:(設(shè)查找的數(shù)組期間為array[low, high])
(1)確定該期間的中間位置K
(2)將查找的值T與array[k]比較。若相等,查找成功返回此位置;否則確定新的查找區(qū)域,繼續(xù)二分查找。區(qū)域確定如下:
a.array[k]>T 由數(shù)組的有序性可知array[k,k+1,……,high]>T;故新的區(qū)間為array[low,……,K-1]
b.array[k]<T 類似上面查找區(qū)間為array[k+1,……,high]。每一次查找與中間值比較,可以確定是否查找成功,不成功當(dāng)前查找區(qū)間縮小一半。遞歸找,即可。
2.python代碼:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def BinarySearch(array,t):
low = 0
height = len(array)-1
while low < height:
mid = (low+height)/2
if array[mid] < t:
low = mid + 1
elif array[mid] > t:
height = mid - 1
else:
return array[mid]
return -1
if __name__ == "__main__":
print BinarySearch([1,2,3,34,56,57,78,87],57)
結(jié)果:57
3.時(shí)間復(fù)雜度:O(log2n);
注意:二分查找的前提必須待查找的序列有序。
- Python實(shí)現(xiàn)高斯函數(shù)的三維顯示方法
- python+matplotlib實(shí)現(xiàn)鼠標(biāo)移動(dòng)三角形高亮及索引顯示
- 編寫(xiě)Python腳本使得web頁(yè)面上的代碼高亮顯示
- python實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件的方法
- 爬山算法簡(jiǎn)介和Python實(shí)現(xiàn)實(shí)例
- python雙向鏈表實(shí)現(xiàn)實(shí)例代碼
- python二叉樹(shù)的實(shí)現(xiàn)實(shí)例
- 基于python計(jì)算并顯示日間、星期客流高峰
相關(guān)文章
python 將字符串轉(zhuǎn)換成字典dict的各種方式總結(jié)
下面小編就為大家分享一篇python 將字符串轉(zhuǎn)換成字典dict的各種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03利用Python小工具實(shí)現(xiàn)3秒鐘將視頻轉(zhuǎn)換為音頻
這篇文章主要介紹了利用Python小工具實(shí)現(xiàn) 3秒鐘將視頻轉(zhuǎn)換為音頻效果,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Python+PyQt5實(shí)現(xiàn)數(shù)據(jù)庫(kù)表格動(dòng)態(tài)增刪改
這篇文章主要為大家介紹如何利用Python中的PyQt5模塊實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)表格的動(dòng)態(tài)增刪改,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03SQLite3中文編碼 Python的實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇SQLite3中文編碼 Python的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01python獲取全國(guó)城市pm2.5、臭氧等空氣質(zhì)量過(guò)程解析
這篇文章主要介紹了python獲取全國(guó)城市pm2.5、臭氧等空氣質(zhì)量過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10分享4個(gè)方便且好用的Python自動(dòng)化腳本
自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程,直白的就是為了節(jié)省人力、時(shí)間或硬件資源,提高測(cè)試效率,這篇文章主要給大家分享介紹了3個(gè)方便且好用的Python自動(dòng)化腳本,需要的朋友可以參考下2022-02-02