顺序表查找-数据结构

定义 设有一个集合T,其中有n个数据项,集合T及其中数据项的形式如下

T={(k0,I0),(k1,I1),...,(kn-1,In-1)}

k0,k1,...,kn-1是互不相同的关键字值

Ij(0≤j≤n-1)是与关键字值kj相关的信息

给定一个特定的关键字值K,查找问题是在T中确定数据项(kj,Ij),使得kj=K

查找表中的数据项也称为记录

每个记录至少包含一个关键字

记录中关键字的类型可以是能够进行比较操作的任意类型

  • 顺序查找方法

初始时,将给定的关键字值K与表中第一个记录的关键字值相比较,若两个值相等则找到目标,查找成功;否则将K与表中下一个记录的关键字值继续比较并判断是否相等,依此类推。如果直到最后一个记录的关键字值与K都不相等,则表明所存储的数据中没有要查找的目标,查找不成功

查找的平均查找长度为(n+1)/2

不成功查找的查找次数为n

当数据按关键字有序存储时,可以改进顺序查找方法

折半查找也称为二分查找,其适用条件是数组中各个记录按关键字有序排列,所以折半查找只适用于有序表

折半查找并不从有序表的一端开始查找,而是从中间开始查找

  • 例子

给定有序表

11 15 18 22 33 45 60 65 82 86 97

使用折半查找方法查找22,给出查找过程

初始时

相关推荐
走在考研路上1 小时前
Python错误处理
开发语言·python
数据小爬虫@1 小时前
Python爬虫:如何优雅地“偷窥”商品详情
开发语言·爬虫·python
CV大法好1 小时前
刘铁猛p3 C# 控制台程序引用System.Windows.Forms报错,无法引用程序集 解决方法
开发语言·c#
工业甲酰苯胺1 小时前
C语言之输入输出
c语言·c++·算法
Days20501 小时前
uniapp小程序增加加载功能
开发语言·前端·javascript
C++忠实粉丝1 小时前
计算机网络之NAT、代理服务、内网穿透、内网打洞
网络·c++·网络协议·计算机网络·http·智能路由器
零光速1 小时前
数据处理与统计分析——10-Pandas可视化-Matplotlib的常用API
数据结构·python·数据分析·pandas·matplotlib
努力d小白2 小时前
leetcode98.验证二叉搜索树
算法
YueTann2 小时前
Leetcode SQL 刷题与答案-基础篇
sql·算法·leetcode
朱小勇本勇2 小时前
Qt实现控件拖曳
开发语言·数据库·qt