伪码如下:
① low=1;high=F(k)-1; // 设置初始区间
F=F(k)-1;f=F(k-1)-1; // F为表长,f为取中点的相对偏移量
② 当low>high时,返回查找失败信息 // 表空,查找失败
③ low≤high,mid=low+f;
// 取中点
a. 若kx<tbl.elem[mid].key,则
p=f;f=F-f-1; // 计算取中点的相对偏移量
F=p; // 调整表长F
high=mid-1;转② // 查找在左半区进行
b. 若kx>tbl.elem[mid].key,则
F=F-f-1; // 调整表长F
f=f-F-1; // 计算取中点的相对偏移量
low=mid+1;转② // 查找在右半区进行
c. 若kx=tbl.elem[mid].key,返回数据元素在表中位置 // 查找成功