查找算法:分块查找

分块查找,又称索引顺序查找,性能介于顺序查找和折半查找之间。

需建立一个 索引表

2

索引表包括两项内容: 关键字项(其值为该子表内的最大关键字)和指针项(指示该子表的第一个记录在表中的位置)。
索引表按关键字有序,则表或者有序或者分块有序。
“分块有序”指第二个子表中所有记录的关键字均大于第一个子表中的最大关键字,第三个子表中的所有记录的关键字均大于第二个子表中的最大关键字,......,依次类推。

因此,分块查找分两步:
1) 确定待查记录所在块(将key与索引表中值比较,可用顺序查找,也可用折半查找)
2) 在块中顺序查找

算法分析:
优点:在表中插入、删除元素时,只要找到该元素对应块即可,由于块内是无序的,故不需要大量移动,插入、删除较容易(相比于折半查找的有序)。
如果线性表既要快速查找又经常动态变化,可采用分块查找。 (?在该块插入后,块后面的块内容需要移动吧?)
缺点:增加索引表存储空间,并对初始索引表进行排序运算。

posted @   aguo718  阅读(881)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示