顺序表查找-数据结构

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

初始时

相关推荐
洲星河ZXH2 分钟前
Java,日期时间API
java·开发语言·python
前端老曹3 分钟前
Jspreadsheet CE V5 使用手册(保姆版) 二
开发语言·前端·vue.js·学习
秋邱5 分钟前
AR 定位技术深度解析:从 GPS 到视觉 SLAM 的轻量化实现
开发语言·前端·网络·人工智能·python·html·ar
W_chuanqi6 分钟前
单目标实数参数优化:算法jSO
算法
Boop_wu6 分钟前
[Java EE] 多线程进阶(3) [线程安全集合类]
开发语言·windows·python
雨疏风骤12409 分钟前
【FreeRTOS】任务、任务状态
开发语言·stm32·c#·rtos
老鱼说AI13 分钟前
算法初级教学第三步:链表
数据结构·算法·链表
CodeByV13 分钟前
【算法题】双指针(一)
数据结构·算法
SongYuLong的博客13 分钟前
开源 C 标准库(C Library)
c语言·开发语言·开源