python 基本算法(顺序查找)

一,顺序查找

查找算法是程序中经常用到的算法。假定要从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()
    

 

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值