目录
下一篇:查找之B树
分块查找思想:
low和high是区间范围,maxValue是区间最大值
每次查找先查找索引表,找到索引表中区间最大值第一次大于该key的区间(可顺序、可折半),再在该区间中通过顺序查找找到key
分析二分查找在查找索引时的过程
情况一:查找目标是某个区间最大值,正常二分查找即可
情况二:查找目标不是区间最大值
那么最后一定会有mid=low=high
如果:此时mid<key则low++,则low>key>high此时low指向的一定是刚好第一次比key大的区间
如果:此时mid>key则一定有high--,则还是low>key>high,则也是刚好第一次比key大的区间
综上:在low所指的分块中查找
但是如果low超出索引表范围则查找失败
查找效率分析:
查找失败一般不考
若分块有规律
注:b=n/s
若是折半找分块
小结:
思考:
若查找表是动态查找表
若要插入一个元素则后面的元素都要移动
可以改进为链式存储