1. 二分查找

二分查找

二分查找,其输入的是一组有序的列表。如果查找的元素在列表中,则返回元素的位置;否则返回null。

二分查找:查找最多需要log n步。【对数是幂运算的逆运算】

简单查:最多需要n步。

python代码示例:

def binary_search(list1, item):
   # low 和high用于跟踪查找部分
   low = 0
   high = len(list1) - 1

   # 只要范围没有缩小到只包含一个元素,就只检查中间的元素
   while low <= high:
       mid = (low + high) // 2
       guess = list1[mid]
       if guess == item:
           return mid
       if guess > item:
           high = mid - 1
       else:
           low = mid + 1
   return None

T_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

print(binary_search(T_list, 6))

#5

1.1 运行时间

线性时间:猜测次数与列表长度相同

二分查找:O(log n)

简单查找:O(n)

原文地址:https://www.cnblogs.com/qimingming/p/13293065.html