第五讲 二分搜索(1)——模板

2020-06-02  本文已影响0人  天涯海角之路

模板

def bi_search(num_list, val):
    if len(num_list) == 0:
        return -1

    l, h = 0, len(num_list)-1
    while l+1 < h:
        mid = (l+h) // 2
        if val == num_list[mid]:
            return mid
        if val < num_list[mid]:
            h = mid
        if val > num_list[mid]:
            l = mid

    if val == num_list[l]:
        return l
    if val == num_list[h]:
        return h

    return -1

模板分为五步:

  1. 空列表判断
  2. 循环状态初始化
  3. 循环的执行条件(当碰到边界时跳出循环)
  4. 循环内部情况
  5. 边界情况
上一篇 下一篇

猜你喜欢

热点阅读