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