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);
注意:二分查找的前提必須待查找的序列有序。
相關(guān)文章
如何從csv文件構(gòu)建Tensorflow的數(shù)據(jù)集
這篇文章主要介紹了如何從csv文件構(gòu)建Tensorflow的數(shù)據(jù)集,幫助大家更好的理解和使用Tensorflow,感興趣的朋友可以了解下2020-09-09
python自動(dòng)提取文本中的時(shí)間(包含中文日期)
這篇文章主要介紹了python自動(dòng)提取文本中的時(shí)間(包含中文日期),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
python爬取w3shcool的JQuery課程并且保存到本地
本文主要介紹python爬取w3shcool的JQuery的課程并且保存到本地的方法解析。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04
Python報(bào)錯(cuò):對象不存在此屬性的解決
這篇文章主要介紹了Python報(bào)錯(cuò):對象不存在此屬性的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Python中的Pandas?時(shí)間函數(shù)?time?、datetime?模塊和時(shí)間處理基礎(chǔ)講解
Python?中提供了對時(shí)間日期的多種多樣的處理方式,主要是在?time?和?datetime?這兩個(gè)模塊里,這篇文章主要介紹了Python中的Pandas?時(shí)間函數(shù)?time?、datetime?模塊和時(shí)間處理基礎(chǔ),需要的朋友可以參考下2023-03-03
python selenium 無界面瀏覽器的實(shí)現(xiàn)
有時(shí)我們不想讓瀏覽器窗口跳出來,而是想在后臺進(jìn)行操作,這就需要用到無界面瀏覽器,本文主要介紹了python selenium 無界面瀏覽器的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Python實(shí)戰(zhàn)之整蠱神器合集加速友盡
讀萬卷書不如行萬里路,學(xué)的扎不扎實(shí)要通過實(shí)戰(zhàn)才能看出來,本篇文章手把手帶用python來做幾個(gè)整蠱的小程序,大家可以在過程中查缺補(bǔ)漏,看看自己掌握程度怎么樣,發(fā)給朋友加固一下友誼2021-10-10
matlab中二維插值函數(shù)interp2的使用詳解
這篇文章主要介紹了matlab中二維插值函數(shù)interp2的使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python實(shí)現(xiàn)從一組顏色中找出與給定顏色最接近顏色的方法
這篇文章主要介紹了python實(shí)現(xiàn)從一組顏色中找出與給定顏色最接近顏色的方法,涉及Python操作rgb格式顏色的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03

