顺序表查找-数据结构

定义 设有一个集合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,给出查找过程

初始时

相关推荐
HXhlx1 小时前
CART决策树基本原理
算法·机器学习
Wect2 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱2 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
肆忆_5 小时前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星9 小时前
虚函数表:C++ 多态背后的那个男人
c++
Gorway9 小时前
解析残差网络 (ResNet)
算法
拖拉斯旋风9 小时前
LeetCode 经典算法题解析:优先队列与广度优先搜索的巧妙应用
算法
Wect9 小时前
LeetCode 207. 课程表:两种解法(BFS+DFS)详细解析
前端·算法·typescript
灵感__idea1 天前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
Wect1 天前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript