已知如下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))
二分法
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 # 右指针左移