- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种高效率的信息检索算法
一种高效率的信息检索算法
[摘要] 构造一个新的HASH函数,结合索引顺序表和二分检索法的思想,提出了一种高效率的信息检索算法,通过理论计算和实验证明此算法的平均检索长度小于1.352(Ngt;100)。
[关键词] HASH函数检索平均检索长度
信息时代如何提高信息检索的效率一直是信息管理人员关注的问题。提高信息检索效率的有效途径是构建被检索信息与其存放地址之间的关系(HASH)。到目前为止,构造HASH函数的方法很多,常用的方法有:直接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法等转换算法。但是不论哪种算法都会出现“碰撞” 现象 , 因而就限制了上述方法的普遍使用。为了解决或减少“碰撞”,我们把HASH的思想和索引顺序表检索的思想,以及二分检索法的思想结合起来提出一种基于HASH表的二分检索法,通过理论分析和实验证明,该算法检索效率极高。
一、HASH函数的构造
桶排序法,先把被排数据所分布的区间[Dmin,Dmax](在这里Dmax,Dmin分别为被排数据的最大,最小值)划分成N个大小相等的子区间,称子为“桶”,然后将N个数据根据其大小分配入相应的“桶”内(桶[1],桶[2],…,桶[N])。借签桶排序中将数据根据其大小分配入相应“桶”的思想,我们在检索时将已排好序的数据也根据其大小将其分配入相应的“桶”内,然后再在“桶”内进行二分检索。假设按升序排列的N个数据已存放在data数组的元素 data[0]~data[N-1]中,构造一个HASH 函数为:
(式中Dmax=data[N-1],Dmin=data[0],N为数据个数)
二、基于HASH函数的二分检索算法HS
算法HS使用二个数组,data数组的元素 data[0]~data[N-1]中存放按升序排列的N个数据,address数组的元素address[1]~address[N]中用来存贮经HASH函数转换后得到相同地址的数据个数。
算法HS
HS1[清address数组]将ddress[1]~address[N]都置0
HS2[Dmax中置最大值、Dmin中置最小值]Dmax←data[N-1],Dmin←data[0]
HS3[i置初始值] i←0
HS4[求数据data[i]的HASH变换后的地址ad]ad
HS5[地址“碰撞”记数器address[ad]加1] address[ad] ←address[ad]+1
HS6[修改i] i←i+1
HS7[比较i与N-1] 若ilt;=N-1,则转HS4,否则转HS8。
HS8[address[0]置初值1]address[0] ←1
HS9[j置初始值]j←1
HS10 [求地址发生“碰撞”的数据在DATA数组中的首地址]address[j]=address[j]+address[j-1]
HS11[修改j] j ←j+1
HS12 [比较j与N] 若jlt;=N 则转HS10,否则转HS13。
HS13 [输入一个被检索的数据 X]
HS14[对被检索数据X 用HASH 函数得地址ad]
HS15 [确定“块”的下界low,上界high的值] low←address[ad-1],high←address[ad]-1
HS16 [在“块”内进行二分检索] 在给定的下界与上界之间进行二分检索,若找到,则返“检索成功”信息,否则返加回“检索失败”信息。
HS17 [本算法结束]
三、平均检索长度的分析
在本检索算法中,首先将被检索数据X经HASH函数转换出一个地址,根据这个地址将被检索的数据直接定位到相应的“块”中,然后在“块”中进行二分检索。 因此通过对所有“块”内二分检索法的平均检索长度的计算就可求出本算法的平均检索长度。二分检索法的平均检索长度为:
下面我们来求本算法的平均检索长度。假设在N个数据均匀分布的情况下,经过本检索算法中HASH函数转换,每一个地址出现的概率相同,都等于1/N,因此,有m个数据转换得到相同地址的概率为:
(m=1,2,…,N)
参考文献[1] 的附录中已证明:(1)
所以本检索算法的平均检索长度为(2)
由上式(1)和式(2)两个公式即可求得本算法的平均检索长度,其平均检索长度小于1.352(当Ngt;100时)。
四、算法分析与实验结果
1.本算法的创新之处在于通过HASH函数可将被检索的数据X直接位置定位到相应的“块”(通过HASH函数
您可能关注的文档
最近下载
- 中学食堂建设项目社会稳定风险评估报告(模板范文).docx
- 第9课 互传密信有诀窍 教案 义务教育人教版信息科技五年级全一册.docx VIP
- 根本原因分析精神病人自杀RCA.pptx VIP
- SL523-2024 水土保持监理规范.docx VIP
- 路面结构层厚度评定表(代表值自动计算).xls VIP
- 雨虹防水质保合同范本Word模板.docx VIP
- 旅游产品策划与设计422全书教学课件电子教案.ppt
- Toll样受体信号通路中MyD88的研究进展_吴燕燕.pdf VIP
- 2024水土保持工程施工监理规范.docx VIP
- 义务教育版(2024)五年级全一册 第1课 生活处处有算法 教案.docx VIP
文档评论(0)