android二分查找法简书,【PYTHON】二分查找算法
二分查找:
在一段數(shù)字內(nèi),找到中間值,判斷要找的值和中間值大小的比較。
如果中間值大一些,則在中間值的左側(cè)區(qū)域繼續(xù)按照上述方式查找。
如果中間值小一些,則在中間值的右側(cè)區(qū)域繼續(xù)按照上述方式查找。
直到找到我們希望的數(shù)字。
def search_data(data,data_find):
# 中間值的索引號的定義:數(shù)組長度/2
mid = int(len(data)/2)
# 判斷從1開始的數(shù)字?jǐn)?shù)組內(nèi)查找
if data[mid] >= 1:
# 如果我們要找的值(data_find)比中間值(data[mid])小
if data[mid] > data_find:
print("你要找的數(shù)字比中間值[%s]小..." % data[mid])
# 在中間值(data[mid])的左側(cè)繼續(xù)查找,在此函數(shù)中繼續(xù)循環(huán)
search_data(data[:mid],data_find)
# 如果我們要找的值(data_find)比中間值(data[mid])大
elif data[mid] < data_find:
print("你要找的數(shù)字比中間值[%s]大..." % data[mid])
# 在中間值(data[mid])的右側(cè)繼續(xù)查找,在此函數(shù)中繼續(xù)循環(huán)
search_data(data[mid:],data_find)
else:
# 如果我們要找的值(data_find)既不比中間值(data[mid])大,也不比中間值(data[mid])小,則就是它
print("這就是你要找的[%s]!" % data[mid])
else:
print("不好意思,沒有找到你要的值...")
if __name__ == '__main__':
# 創(chuàng)建一個1到6000萬的連續(xù)數(shù)字?jǐn)?shù)組
data = list(range(60000000))
# 調(diào)用函數(shù)找到95938的值
search_data(data,95938)
總結(jié)
以上是生活随笔為你收集整理的android二分查找法简书,【PYTHON】二分查找算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3224: Tyvj 1728 普通平衡
- 下一篇: 程序员专属桌面壁纸