一、醉汉回家模型
import random # 导入random包
list1 = list(range(1, 31)) # 创建一个list列表
def find(list):
x = int(input("输出初始位置:")) # 初始位置
y = int(input("输入目标位置:")) # 目标位置
while 1:
flag = random.randint(0, 1)
step = 1 if flag else -1 # 条件判断,前进或者后退的条件
x = x + step # 前进
if x < 0:
x += 1
if x > len(list):
x -= 1
if (list[x] == y):
print("数字的索引是" + str(x))
break
find(list1)
二、普通搜索(线性搜索)
li = list(range(1, 31))
def search(li, n, x): # 参数li数组,n数组长度,x要查找的数字
for i in range(0, n): # for循环,范围为0到数组的长度
if (li[i] == x): # i为索引
return i # 返回索引i
return -1
n = len(li)
x = int(input("请输入要查找的数字:"))
result = search(li, n, x) # 调用方法search
if (result == -1): # 只要result等于-1
print("元素不在数组中") # 打印
else:
print("元素在数组中的索引为", result)