码迷,mamicode.com
首页 > 编程语言 > 详细

3、分块查找——查找算法

时间:2019-11-02 12:18:41      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:分块   查找算法   查找   增加   索引   post   str   存储空间   class   

 

3、分块查找 (又称 索引顺序查找)[性能介于 顺序查找 和 折半查找之间]

  索引表
最大关键字 22 48 86
  起始地址 1 7 13

 

 

 

 

22 12 13 8 9 20 33 42 44 38 24 48 60 58 74 49 86 53
表及其索引表

 

 

块的查找 既可以顺序查找,也可以折半查找。

因为上表块中记录是无序的,所以只能是顺序查找。

分块查找平均查找长度:ASLbs=Lb+Lw

Lb:查找索引表确定所在块的平均查找长度。

Lw:块中查找元素的平均查找长度。

一般情况下,长度为n的表均匀分成b块,每块有s个记录,即b=[n/s] ;

假定表中每个记录查找概率相等,则每块查找概率为 1/b ;

块中每个记录的查找概率为 1/s;

 

用顺序查找确定所在块的平均查找长度为 ASLbs=Lb+Lw=(1/2)( (n/s) + s ) + 1

 

平均查找长度跟表长n有关,还和每一块中记录个数s有关。

当s取√n (根号n) ,ASLbs取最小值 √n +1 。

 

比顺序查找有改进,但远不及折半查找

 

分块查找优点:

在表中插入和删除元素时,只要找到该元素对应的块,就可以在该块内进行插入和删除运算。

由于块内无序,故插入删除容易,无需大量移动。

如果线性表既要快速查找,又要经常动态变化,则可以使用分块查找。

分块查找缺点:

要增加一个索引表的存储空间,并对初始索引表进行排序运算。


 

3、分块查找——查找算法

标签:分块   查找算法   查找   增加   索引   post   str   存储空间   class   

原文地址:https://www.cnblogs.com/LinQingYang/p/11780770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!