分块查找的思及其查找效率分析(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语言)的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题178之实现分块查找算法,索引顺序查找算法

C语言试题178之实现分块查找算法,索引顺序查找算法

王道数据结构7(查找)

(王道408考研数据结构)第七章查找-第二节3:分块查找

(王道408考研数据结构)第七章查找-第二节3:分块查找

B树的相关概念及其插入删除操作(C语言)