数据结构(Python)

已知如下11个数据元素的有序表:
(5,16,20,27,30,36,44,55,60,67,71)请给出查找60关键字数据元素的顺序查找算法
环境: 任一Python 3 解释器
目的:掌握 顺序查找过程及算法实现
该怎样运用Python语言编写相关代码进行实验?



def find(List, e):
    for i in range(len(List)):
        if List[i] == e:
            return i   #如找到,返回其下标
    return -1   #如找不到,返回-1


if __name__ == '__main__':
    List = [5, 16, 20, 27, 30, 36, 44, 55, 60, 67, 71]
    print(find(List, 60))

二分法

img


s = (5, 16, 20, 27, 30, 36, 44, 55, 60, 67, 71)
r = 0   # 左指针
l = len(s) - 1  # 右指针
while r <= l:   # 指针未相遇
    if s[r] == 60 or s[l] == 60:
        print("find_60\n", f"{r}:", s[r], f"{l}:", s[l])   # 根据输出元素判断60所在下标
        break
    r += 1  # 左指针右移
    l -= 1  # 右指针左移