算法 - 查找 - 顺序查找 (Sequential Search)

本文介绍如何使用C++实现通用模板顺序查找算法,包括整型查找、模板查找、修改整型查找以及自定义类型调用。通过比较关键字来搜索元素,详细解释了查找过程和效率,并提供了代码示例。
摘要由CSDN通过智能技术生成

算法 - 查找 - 顺序查找 (Sequential Search)

返回分类:全部文章 >> 基础知识

返回上级:算法 - 查找与排序 (Searching and Sorting)

本文将用C++实现通用模板顺序查找算法,复制代码直接可使用。

在查看本文之前,需要一些程序语言的基础。



1 顺序查找简述 (Introduction)

顺序查找,又称线性查找,主要用于在线性结构中进行查找操作。时间复杂度 O(n) 。

假设表中有 n 个元素,查找过程为从表的第一个元素(或最后一个元素)依次对元素的关键字与给定值的关键字比较:

  • (1)如果与给定关键字相同,则查找成功,返回在表中的位置;

  • (2)如果整个表都检测完成,没有找到相同关键字,则查找失败。

如果顺序表是有序表,则失败条件除检测完整张表外,还有:

  • (1)正向查找,给定值大于关键字,则失败;

  • (2)反向查找,给定值小于关键字,则失败。

通常情况下:

  • 返回值,代表下标;

  • 返回-1,代表没有找到关键字;

其一般查找成功平均查找长度为:

A S L s u c c = ∑ i = 0 n − 1 1 n ( i + 1 ) = n + 1 2 {ASL}_{succ} = \sum_{i=0}^{n-1} \frac{1}{n} (i+1) = \frac{n+1}{2} ASLsucc=i=0n1n1(i+1)=2n+1

其一般查找不成功平均查找长度为:

A S L u n s u c c = n + 1 {ASL}_{unsucc} = n+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值