1.思路

分块有序,即分成若干子表,要求每个子表中的数值都比后一块中数值小(但子表内部未必有序)。
然后将各子表中的最大关键字构成一个索引表,表中还要包含每个子表的起始地址(即头指针)。

数据结构-线性表的查找-分块查找

2.查找过程

  1. 对索引表使用折半查找法(因为索引表是有序表);
  2. 确定了待查关键字所在的子表后,在子表内采用顺序查找法(因为各子表内部是无序表);

3.性能分析

查找效率:ASL=Lb+Lw
Lb:对索引表查找的ASL
Lw: 对块内查找的ASL

ASL=log(n/s+1)+s/2
logn<=ASL<=(n+1)/2
s为每块内部的记录个数,n/s即块的数目

例如,当n=9,s=3时,ASL=3.5,折半法为3.1,顺序法为5

相关文章:

  • 2022-12-23
  • 2021-04-12
  • 2021-08-24
  • 2022-02-07
  • 2022-12-23
  • 2021-12-08
  • 2022-12-23
  • 2022-01-20
猜你喜欢
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-24
  • 2022-12-23
相关资源
相似解决方案