分块查找的思及其查找效率分析(C语言)
Posted bfhonor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分块查找的思及其查找效率分析(C语言)相关的知识,希望对你有一定的参考价值。
一、分块查找
(一)算法思想
//索引表
typedef struct{
ElemType maxValue;
int low,high;
}Index;
//顺序表存储实际元素
ElemType List[100];
- 特点:块内无序、块间有序
- 分块查找,又称索引顺序查找,算法过程如下:
①在索引表中确定待查记录所属的分块(可顺序、可折半)
②在块内顺序查找
1. 用折半查找查索引
- 查找目标:30
- 查找目标:19
- 原因:最终low左边一定小于目标关键字,high右边一定大于目标关键字。而分块存储的索引表中保存的是各个分块的最大关键字
- 若索引表中不包含⽬标关键字,则折半查找索引表最终停在 low>high,要在low所指分块中查找
(二)查找效率分析(ASL)
(三)扩展
- 若查找表是“动态查找表”,有木有更好的实现方式?——链式存储(能够更好的插入任意分块中)
以上是关于分块查找的思及其查找效率分析(C语言)的主要内容,如果未能解决你的问题,请参考以下文章