请您留下宝贵的建议吧:)
广西百色高中欢迎您!

| 网站首页 | 学校概况 | 软件下载 | 图片中心 | 雁过留声 | 视频资源 | 校长信箱 | 内 部 网 |
| 同 学 录 | 网络办公 | 教学课件 | 优秀教案 | 试卷下载 | 教学素材 | 教学论文 | 电子图书 |

 
您现在的位置: 广西百色高中校园网 >> 学校概况 >> 学生频道 >> 信息技术 >> 数据结构 >> 文章正文 用户登录 新用户注册
   
   

[组图]第八章 查找(四)顺序表的分块查找          【字体:
第八章 查找(四)顺序表的分块查找
作者:仔仔    文章来源:本站原创    点击数:    更新时间:2006-9-26

第八章 查找(四)顺序表的分块查找 分块查找

     分块查找(Blocking Search)又称索引顺序查找。它是一种性能介于顺序查找和二分查找之间的查找方法。

1、 二分查找表存储结构
     二分查找表由"分块有序"的线性表和索引表组成。
(1)"分块有序"的线性表
     表R[1..n]均分为b块,前b-1块中结点个数为 ,第b块的结点数小于等于s;每一块中的关键字不一定有序,但前一块中的最大关键字必须小于后一块中的最小关键字,即表是"分块有序"的。

(2)索引表
     抽取各块中的最大关键字及其起始位置构成一个索引表ID[l..b],即:
ID[i](1≤i≤b)中存放第i块的最大关键字及该块在表R中的起始位置。由于表R是分块有序的,所以索引表是一个递增有序表。
  【例】下图就是满足上述要求的存储结构,其中R只有18个结点,被分成3块,每块中有6个结点,第一块中最大关键字22小于第二块中最小关键字24,第二块中最大关键字48小于第三块中最小关键字49。

2、分块查找的基本思想
  分块查找的基本思想是:
(1)首先查找索引表
  索引表是有序表,可采用二分查找或顺序查找,以确定待查的结点在哪一块。

(2)然后在已确定的块中进行顺序查找
   由于块内无序,只能用顺序查找。

3、分块查找示例
【例】对于上例的存储结构:
(1)查找关键字等于给定值K=24的结点
  因为索引表小,不妨用顺序查找方法查找索引表。即首先将K依次和索引表中各关键字比较,直到找到第1个关键宇大小等于K的结点,由于K<48,所以关键字为24的结点若存在的话,则必定在第二块中;然后,由ID[2].addr找到第二块的起始地址7,从该地址开始在R[7..12]中进行顺序查找,直到R[11].key=K为止。
(2)查找关键字等于给定值K=30的结点
  先确定第二块,然后在该块中查找。因该块中查找不成功,故说明表中不存在关键字为30的结点。
  具体过程【参见动画演示】http://www.shzx.net.cn/cms/oi/images/stories/datastruct/shuju30.swf

4、算法分析
(1)平均查找长度ASL
  分块查找是两次查找过程。整个查找过程的平均查找长度是两次查找的平均查找长度之和。
①以二分查找来确定块,分块查找成功时的平均查找长度
      ASLblk=ASLbn+ASLsq≈lg(b+1)-1+(s+1)/2≈lg(n/s+1)+s/2

②以顺序查找确定块,分块查找成功时的平均查找长度
      ASL'blk=(b+1)/2+(s+1)/2=(s2+2s+n)/(2s)
注意:
    当 s=时ASL'blk取极小值 +1 ,即当采用顺序查找确定块时,应将各块中的结点数选定为
  【例】若表中有10000个结点,则应把它分成100个块,每块中含100个结点。用顺序查找确定块,分块查找平均需要做100次比较,而顺序查找平均需做5000次比较,二分查找最多需14次比较。
  注意:

  分块查找算法的效率介于顺序查找和二分查找之间。

(2)块的大小

  在实际应用中,分块查找不一定要将线性表分成大小相等的若干块,可根据表的特征进行分块。
  【例】一个学校的学生登记表,可按系号或班号分块。

(3) 结点的存储结构

  各块可放在不同的向量中,也可将每一块存放在一个单链表中。
  
(4)分块查找的优点

  分块查找的优点是:
  ①在表中插入或删除一个记录时,只要找到该记录所属的块,就在该块内进行插入和删除运算。
  ②因块内记录的存放是任意的,所以插入或删除比较容易,无须移动大量记录。
  分块查找的主要代价是增加一个辅助数组的存储空间和将初始表分块排序的运算。

文章录入:qinjun    责任编辑:qinjun 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
          最新热点       最新推荐       相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

       
     
     
     
    广西百色高中欢迎您!   网站地图 | 联系站长 | 友情链接 | 用户排行 | 版权申明 | 管理登录
    版权所有 Copyright© 2005-2010 广西百色高中 (桂ICP备05013955号)
    学校地址:广西百色市城乡路93号 电话号码:0776-2824142 传真:0776-2847293 邮政编码:533000
    站    长:覃钧  QQ:75331465            改版时间:2007年8月20日