1. 顺序查找算法
顺序查找又称为线性查找,是最简单的查找算法。这种算法就是按照数据的顺序一项一项逐个查找,所以不管数据顺序如何,都得从头到尾遍历一次。顺序查找的有点就是数据再查找前,不需要对其进行任何处理(包括排序)。缺点是查找速度慢,如果数据列的第一个数据就是想要查找的数据,则该算法查找速度为最快,只需要查找一次即可;如果查找的数据是数据列的最后一个,则该查找算法为最慢,需要查找 n 次,甚至还会出现未找到数据的情况。
所以,顺序查找只适用于查找较少的数据列。当查找数据较多时,用顺序查找就不太合适。
2. 查找随机生成数
问题:随机从1~100之间生成50个整数,并将随机生成的这50个数显示出来,然后用顺序查找算法查找“75、94、50”这个几个数据的位置。
import random # 导入随机数模块
num = 0 # 定义变量num
data = [0] * 50 # 定义数组
for i in range(50): # 遍历随机生成50个数
data[i] = random.randint(1, 100) # 1~100之间随机生成
print("随机产生的数据内容是:")
for i in range(10): # 遍历行
for j in range(5): # 遍历列
print('%2d[%3d] ' % (i * 5 + j + 1, data[i * 5 + j]), end='') # 按格式输出随机生成内容,取消自动换行
print('') # 默认带换行
while num != -1: # 循环输入
find = 0 # 比较次数
num = int(input("请输入想要查找的数据,输入-1退出程序:")) # 数据输入
for i in range(50): # 循环遍历50个随机数
if data[i] == num: # 判断如果输入数据和data数据相等
print("在", i + 1, "个位置找到数据", data[i]) # 输出找到的位置和数据内容
find += 1 # 比较次数加1
if find == 0 and num != -1: # 判断比较次数是0且输入数据不是-1
print("没有找到", num, "此数据") # 提示没有找到数据