分块查找法要求将列表组织成以下索引顺序结构:
首先将列表分成若干个块(子表)。一般情况下,块的长度均匀,最后一块可以不满。
每块中元素任意排列,即块内无序,但块与块之间有序。
构造一个索引表。其中每个索引项对应一个块并记录每块的起始位置,和每块中最大
关键字(或最小关键字)。索引表按关键字有序排列。
图 1-2 所示为一个索引顺序表。其中包括三个块,第一个块的起始地址为 0,块内最
大关键字为 25;第二个块的起始地址为 5,块内最大关键字为 58;第三个块的起始地址为
10,块内最大关键字为 88。
分块查找的基本过程如下:
(1)首先,将待查关键字 K 与索引表中的关键字进行比较,以确定待查记录所在的
块。具体的可用顺序查找法或折半查找法进行。
(2)进一步用顺序查找法,在相应块内查找关键字为 K的元素。