顺序 - 查找

顺序查找

Created: March 8, 2022 9:56 PM
Introduction: 介绍算法中的顺序查找
Source: 原创
Tags: 算法专栏


什么是查找

  • 查找:在一些数据元素中,通过一定的方法找出与给定关键字相同的数据元素的过程。
  • 列表查找(线性表查找):从列表中查找指定元素
    • 输入:列表、待查找元素
    • 输出:元素下标(未找到元素时一般返回None或-1)
  • Python中内置列表查找函数:index()

什么是顺序查找

  • 顺序查找:也叫线性查找,从列表的第一个元素开始,顺序进行搜索,直到找到元素或搜素到列表最后一个元素为止。
  • 时间复杂度: O ( n ) O(n) O(n)
# 写法一:
def linear_search(li,val):
	for index, value in enumerate(li):
		if value == val
			return index
	else:
		return None

# 或者这么写:
def linear_search(li,val):
	for i in range(len(li)):
		if li[i] == val
			return index
	return None

补充1:for…else…的执行顺序

当迭代对象完成所有迭代后且此时的迭代对象为空时,如果存在else子句则执行else子句,没有则继续执行后续代码;如果迭代对象因为某种原因(如带有break关键字)提前退出迭代,则else子句不会被执行,程序将会直接跳过else子句继续执行后续代码。

for i in range(5):
    if i == 2:
        print(i)
        # break
else:
    print("执行else....")

上述代码:当缺少break关键字时,程序的执行结果是:

2
执行else....

当具备break关键字时,程序执行结果为:

2

补充2:enumerate() 函数的概念

enumerate() 函数:用于将一个可迭代的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

再来看看enumerate() 函数的语法结构:

  • enumerate(sequence, [start=0]),其中sequence是一个可迭代序列,start是一个可选参数,表示序列下标的起始位置;

相关参考

清华大学博士讲解Python数据结构与算法:https://www.bilibili.com/video/BV1uA411N7c5?p=8&spm_id_from=pageDriver

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuZou 邹宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值