Python_算法学习

二分查找

输入一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回NULL。

示例代码

def binary_search(list, item) :  //函数接受一个有序数组list和一个元素item
    //数组的起始位置low与结束位置high
    low = 0
    high = len(list) - 1
    //只要范围没有缩小到只包含一个元素
    while low <= high 
    //检查中间元素
        mid = (low + high) / 2
        guess = list[mid]
    //找到了元素
        if guess == item :
        //返回数组下标
            return mid
    //猜大了
        if guess > item :
        //向前移动一位,缩小取值范围
            high = mid - 1
    //猜小了 
        else :
        //向后移动一位,缩小取值范围
            low = mid + 1
    return None
my_list = [1,3,5,7,9]
print binary_search(my_list, 3) => 1
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!