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

算法 - 查找 - 顺序查找 (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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值