Python实现部分函数-Binary_Search: 二分查找

70 阅读1分钟

#二分查找

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


\