查找:在一些元素中,通过一定的方法找出与给定关键字相同的元素的过程
列表查找(线性表查找):从列表中查找指定元素

  • 输入:列表,待查找元素
  • 输出:元素下标(元素未找到返回 -1 或者 None )

内置列表查找函数:index()
查找方式:

  1. 顺序查找(Linear Search):从列表第一个元素往列表最后一个元素进行搜索
  2. 二分查找:从有序列表的初始候选区 li[0:n] 开始,通过对待查找的值与候选区中间值进行比较,可以使候选区减少一半 ```python

    顺序查找

    def linear_search(li, target): for index, val in enumerate(li):
    1. if val == target:
    2. return index
    return -1

二分查找:用于有序列表

def binary_search(li, target): left = 0 right = len(li) - 1 # 获选区有值 while left <= right:

  1. # >> 左移运算符会向下取整
  2. # / 当无法整除时会产生小数点
  3. # // 当无法整除时会向下取整
  4. mid = (left + right) >> 1
  5. if li[mid] == target:
  6. return mid
  7. elif li[mid] > target: # 目标值在mid的左侧
  8. right = mid - 1
  9. else: # 目标值在mid的右侧
  10. left = mid + 1
  11. else:
  12. return -1

if name == ‘main‘: l = [i for i in range(1, 100, 3)] res = linear_search(l, 82)

  1. # res = binary_search(l, 82)
  2. print("82 在列表中的索引位置:%d" % res)

```