Python實現部分函數-Binary_Search: 二分查找

#二分查找

def Binary_Search( my_list , item ):
    low = 0 #下標
    high = len(my_list) -1 #下標
    while low <= high: # <= 不加括號
        middle = round((low+high)/2) # 注意 middle 要爲整數
        if my_list[middle]<item:
            low=middle+1
        elif my_list[middle]>item:
            high=middle-1
        else:
            return middle
    return None

if __name__ == '__main__':
        my_list= [1, 3, 5, 7, 9]
        print(Binary_Search(my_list, 3))  # 打印3索引值的索引值 => 1
        print(Binary_Search(my_list, -1)) # 未找到-1,打印None

注意:當.py文件被直接運行時,if __name__ == '__main__'之下的代碼塊將被運行;當.py文件以模塊形式被導入時,if __name__ == '__main__'之下的代碼塊不被運行。相當於主函數。

round函數使用方法:

round()方法返回 x 的小數點四捨五入到n個數字。
語法 
以下是round()方法的語法:
round( x [, n] ) 
參數 
x –這是一個數值表達式
n –這也是一個數值表達式
返回值 
該方法返回 x 的小數點四捨五入到n個數字
例子 
下面的例子顯示了round()方法的使用
print “round(80.23456, 2) : “, round(80.23456, 2) 
print “round(100.000056, 3) : “, round(100.000056, 3) 
print “round(-100.000056, 3) : “, round(-100.000056, 3) 
當我們運行上面的程序,它會產生以下結果:
round(80.23456, 2) : 80.23 
round(100.000056, 3) : 100.0 
round(-100.000056, 3) : -100.0


發佈了148 篇原創文章 · 獲贊 113 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章