数据结构之顺序查找

顺序查找(Sequential Search),又称线性查找,是查找技术中最基本、最简单的一种。它的基本思想是从查找表的一端开始,逐个检查每个数据元素的关键字,直到找到所需的数据元素或检查完所有元素为止。顺序查找对查找表的存储结构没有特殊要求,既适用于顺序存储结构,也适用于链式存储结构。

顺序查找的算法步骤

1、初始化:

设置两个指针(或索引),一个指向查找表的起始位置,记为i = 0(或i = 1,取决于查找表的索引是从0开始还是从1开始),另一个用于记录查找是否成功,初始时设为found = false。

2、遍历查找表:

从i开始,逐个检查每个数据元素的关键字,即比较key[i]与给定值K是否相等。

如果相等,则说明找到了所需的数据元素,将found设为true,并记录下当前位置(或数据元素本身),然后结束查找。
如果不相等,则继续向后检查下一个数据元素,即将i加1。

3、查找结束:

当遍历完整个查找表后(即i等于查找表的长度时),如果仍未找到满足条件的数据元素,则查找失败,found保持为false。

顺序查找的Python示例代码

def sequential_search(arr, target):
    """
    顺序查找算法
    :param arr: 查找表,一个列表
    :param target: 要查找的目标值
    :return: 目标值在列表中的索引,如果未找到则返回-1
    """
    for i in range(len(arr)):
        if arr[i] == target:
            return i  # 找到目标值,返回索引
    return -1  # 未找到目标值,返回-1

# 示例
arr = [10, 22, 8, 3, 68, 103, 18, 55]
target = 18
index = sequential_search(arr, target)
if index != -1:
    print(f"元素{target}在数组中的索引为:{index}")
else:
    print(f"元素{target}在数组中未找到")

顺序查找的性能分析

时间复杂度:在最坏情况下,即目标值不在查找表中或位于查找表的最后一个位置时,需要遍历整个查找表,因此时间复杂度为O(n),其中n是查找表的长度。

空间复杂度:顺序查找算法只需要几个额外的变量来存储索引和查找结果,因此空间复杂度为O(1)。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DKPT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值