Python中二分法查找代碼怎么寫?Python如何用二分法查找指定值

在python程序的開發過程之中,要從一個數據結構之中將某個值或者元素,是一個很常見的需求或者實現某個功能所必須的方法 。而一些剛開始接觸python的小伙伴就不是很清楚該怎么去寫python二分法查找的實現代碼,那么下面這篇文章要講解的知識就要仔細閱讀了 。

Python中二分法查找代碼怎么寫?Python如何用二分法查找指定值


【Python中二分法查找代碼怎么寫?Python如何用二分法查找指定值】1.二分法指的就是將需要查找的目標進行排序之后分為高低兩段,然后計算出其中的中位數,在根據要查找的值和中位數的大小判斷該去哪一段進行查找 。
而在查找的過程之中是需要不斷重復地執行查詢操作,所以就還需要使用函數遞歸的方式執行該操作 。首先將包含查詢目標的數據結構給定義好,然后創建三個參數的函數 。這三個參數分別表示高低兩段以及查詢內容,示例如下:
array = [1, 3, 4, 6, 7, 8, 9, 11, 15, 17, 19, 21, 22, 25, 29, 33, 38, 69,99,107]def BinarySearch(low,height,findNum):2.那么在上一步提到了進行二分法查找還需要使用到中位數,用兩個參數加起來除以2即可得到,示例如下:
middle = (low+height)//23.然后就是該函數的關鍵了,先用if條件判斷查找值是否大于中位數,如果是的話就在高段進行查找,反之則在低段進行查找 。最后使用else將查詢到的值索引返回出去即可,而為了重復執行查找代碼,就要在函數內調用本身,詳細代碼示例如下所示:
if findNum >array[middle]:        low = middle +1    elif findNum<array[middle]:        height = middle - 1    else:        return ':%s,值為:%s'%(middle,array[middle])    return BinarySearch(low,height,findNum)print(BinarySearch(array[0],len(array)-1,19))以上就是關于“Python中二分法查找代碼怎么寫?Python如何用二分法查找指定值”的全部內容了,希望對你有所幫助 。

    猜你喜歡