二叉树之下

Binary Search - 二分查找

2018-08-07  本文已影响21人  捡个七

之前趁当当网大折扣的时候,和朋友一起凑数,买了一本《grokking algorithms》。最近有空翻开,发现里面的讲解深入显出,很适合算法小白。而且书中配合着漫画一起讲解很是有趣。在这里记录学习这本算法书的一些笔记。

算法是一组完成任务的指令。任何代码片段都可以视为算法。--《grokking algorithms》

算法说明

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

拿一个具体的例子来说明,比如要猜测 1-100 中的一个数字。

Python 代码实现

def binary_search(list, item):
    
    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 

-------------------------------------------------------
>>> num_list = [1, 3, 5, 7, 9]
>>> binary_search(num_list, 3)
1
上一篇下一篇

猜你喜欢

热点阅读