




已阅读5页,还剩133页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章 检索任课教员:张 铭/mzhang/DS/北京大学信息科学与技术学院网络与信息系统研究所版 权所有,转载或翻印必究n 9.1 基本概念n 9.2 线性表的检索n 9.3 散列表的检索版 权所有,转载或翻印必究 Page 2基本概念n 检索: 在一组记录集合中找到关键码值等于给定值的某个记录,或者找到关键码值符合特定条件的某些记录的过程n 检索的 效率 非常重要n 尤其对于大数据量n 需要对数据进行 特殊的存储处理版 权所有,转载或翻印必究 Page 3基本概念(续 )n 预排序n 排序算法本身比较费时n 只是预处理(在检索之前已经完成)n 建立索引n 检索时充分利用辅助索引信息n 牺牲一定的空间n 从而提高检索效率版 权所有,转载或翻印必究 Page 4基本概念(续 )n 散列技术n 把数据组织到一个表中n 根据关键码的值来确定表中每个记录的位置n 缺点:n 不适合进行范围查询n 一般也不允许出现重复关键码n 当散列方法不适合于基于磁盘的应用程序时,我们可以选择 B树方法版 权所有,转载或翻印必究 Page 5平均检索长度 (ASL) n 关键码的比较n 检索运算的主要操作n 平均检索长度 (Average Search Length)n 检索过程中对关键码需要执行的平均比较次数n 是衡量检索算法优劣的时间标准版 权所有,转载或翻印必究 Page 6平均检索长度n ASL是存储结构中对象总数 n的函数,其定义为: n Pi 为检索第 i个元素的 概率n Ci 为找到第 i个元素所需的关键码值与给定值的 比较次数版 权所有,转载或翻印必究 Page 7平均检索长度n 假设线性表为( a, b, c)检索 a、b、 c的概率分别为 0.4、 0.1、 0.5n 顺序检索算法的平均检索长度为0.41+0.12+0.53 = 2.1n 即平均需要 2.1次给定值与表中关键码值的比较才能找到待查元素版 权所有,转载或翻印必究 Page 8n 衡量一个检索算法还需要考虑n 算法所需的存储量n 算法的复杂性n .版 权所有,转载或翻印必究 Page 99.1 基于线性表的检索n 9.1.1 顺序检索n 9.1.2 二分检索n 9.1.3 分块检索版 权所有,转载或翻印必究 Page 109.1.1 顺序检索顺序检索n 针对线性表里的所有记录,逐个进行关键码和给定值的比较 。n 若某个记录的关键码和给定值比较相等,则检索成功 ;n 否则检索失败 (找遍了仍找不到 )。n 存储:可以顺序、链接n 排序要求:无版 权所有,转载或翻印必究 Page 11顺序检索算法n /代码 9-1 顺序检索的存储结构类型定义 template class Item public: Item(Type value):key(value) Type getKey() return key; /获取关键码值 ;void setKey(Type k) key=k; /设置关键码private:Type key; /关键码域string other; /其它域; vector* dataList;版 权所有,转载或翻印必究 Page 12“监视哨 ”顺序检索算法n 位置 0用来做监视哨 ,位置 1到 length用来存储实际元素n 检索成功时返回元素位置,检索失败时统一返回 0;/代码 9-2 顺序检索算法 template int SeqSearch(vector* /将第 0个元素设为待检索值/ 保证 while循环一定终止dataList0-setKey (k); /从后往前逐个比较while(dataListi-getKey()!=k)i-; return i; /返回元素位置版 权所有,转载或翻印必究 Page 13顺序检索性能分析n 检索成功假设检索每个关键码是等概率的, Pi = 1/nn 检索失败假设检索失败时都需要比较 n+1次(设置了一个监视哨 )版 权所有,转载或翻印必究 Page 14顺序检索性能分析(续)n 平均检索长度假设检索成功的概率为 p, 检索失败的概率为 q=(1-p), 则平均检索长度为n ( n+1)/2 K,说明待查元素若在表中,且一定排在 dataListi之前( 3) Key int BinSearch (vector* while (lowgetKey() high = mid-1; /右缩检索区间else if (kdataListmid-getKey() low = mid+1; /左缩检索区间else return mid; /检索成功,返回元素位置return 0; /检索失败,返回 0 版 权所有,转载或翻印必究 Page 18检索关键码 18。 low=1; high=9; K=18第一次: mid=5; array5=3518high=4; (low=1)第二次: mid=2; array2=17 50)n 优缺点n 优点:平均检索长度与最大检索长度相近,检索速度快n 缺点:要排序、顺序存储,不易更新 (插 /删 )版 权所有,转载或翻印必究 Page 219.1.3 分块检索n 顺序与二分法的折衷n 既有较快的检索n 又有较灵活的更改版 权所有,转载或翻印必究 Page 22分块检索思想n “按块有序 ”n 设线性表中共有 n个数据元素,将表分成 b块n 不需要均匀n 每一块可能不满n 每一块中的关键码不一定有序n 但前一块中的最大关键码必须小于后一块中的最小关键码版 权所有,转载或翻印必究 Page 23n 索引表n 各块中的最大关键码n 及各块起始位置n 可能还需要块中元素个数(每一块可能不满)n 索引表是一个递增有序表n 由于表是分块有序的版 权所有,转载或翻印必究 Page 24分块检索分两个阶段n ( 1)确定待查元素所在的块 n ( 2)在块内检索待查的元素 版 权所有,转载或翻印必究 Page 25分块检索 索引顺序结构n 索引表中每个 索引项 有两个域n 块内最大关键码n 块起始位置版 权所有,转载或翻印必究 Page 26分块检索性能分析n 分块检索为两级检索n 先在索引表中 确定待查元素所在的块; n 设在索引表中确定块号的时间开销是ASLbn 然后 在块内检索待查的元素。 n 在块中查找记录的时间开销为 ASLwn ASL(n) = ASLb + ASLw版 权所有,转载或翻印必究 Page 27分块检索性能分析 (续 1)n 索引表是按索引表是按 块内最大关键码 有序的有序的,且长度也不大,可以二分检索,且长度也不大,可以二分检索,也可以顺序检索也可以顺序检索n 各子表内各个记录不是按记录关键各子表内各个记录不是按记录关键码有序,只能顺序检索码有序,只能顺序检索版 权所有,转载或翻印必究 Page 28分块检索性能分析 (续 2)n 假设在索引表中用顺序检索,在块内也用顺序检索 n 当 s= 时, ASL取最小值,ASL = +1 版 权所有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省厦门市2024-2025学年高二下学期期末考试语文试题(解析版)
- 2024年安全监察人员预测复习含答案详解【典型题】
- 2025年福建林业职业技术学院招聘9人方案笔试备考题库及参考答案详解
- 2025年新能源风力发电机组控制系统智能化技术专利创新报告
- 2024年黑龙江省龙东地区中考语文试卷含答案(下册)(下)
- 2025年潮汐能发电技术商业化瓶颈突破:创新引领海洋能源产业发展
- 2025大连市商品供销合同示范文本
- 2025如何撰写股权转让合同
- 牡蛎的药用功效与作用
- 离婚协议签订时双方隐私保护及信息保密合同
- 2025-2030中国咖喱粉市场消费调查及投资效益趋势预测研究报告
- 餐饮食堂“十统一六到位”管理培训
- 工业生产许可证实施细则
- 增加子女抚养费协议书
- 中学宿舍卫生管理制度
- 少吃糖预防蛀牙
- 《实验设计与数据分析》课件
- 大学安全纪律教育主题班会
- 钢筋混凝土管道施工方案
- 小学数学新教材中“图形与几何”领域的内容结构分析
- 二八时间管理法则
评论
0/150
提交评论