一,顺序查找
查找算法是程序中经常用到的算法。假定要从n个元素中查找 x 的值是否存在,最原始的方法是从头到尾挨个查找,这种查找的方法叫顺序查找方法。
顺序查找有三种情形可能发生:最好的情况,第一项就是要查找的数据对象,只有一次比较,最差的情况,需要 n 次比较,全部比较完之后找不到数据。平均情况下,比较次数为 n/2 次。算法的时间复杂度是 O(n) .
例 : 在列表中查找 x 是否存在
def sequest(alist, item):
pos=0 #初始查找位置
found=False #未找到数据对象
while pos<len(alist) and not found: # 列表未结束并且还未找到则一直循环
if alist[pos] == item: # 找到匹配对象,返回TRUE
found=True
else: #否则查找位置 + 1
pos = pos+1
return found
def main():
testlist=[1,3,5,6,7,8,9,11,23,44]
print(sequest(testlist,11))
if __name__=='__main__':
main()
例 : 在列表顺序中 查找最大值和最小值
def Max(alist):
pos = 0 #初始位置
imax=alist[0] #假设第一个元素是最大值
while pos < len(alist): #在列表中循环
if alist[pos] > imax: #当前列表的值大于最大值 ,则为最大值
imax=alist[pos]
pos = pos+1 #查找位置 +1
return imax
def Min(alist):
pos = 0 # 初始位置
imin = alist[0] #假设第一个元素是最小值
for item in alist: #对于列表中的每一个值
if item < imin: #当前的值小于最小的值 则为最小值
imin = item
return imin
def main():
testlist=[2,3,4,5,6,8,34,23,55,234]
print('最大值是:',Max(testlist))
print('最小值是:',Min(testlist))
if __name__=='__main__':
main()