网站大量收购独家精品文档,联系QQ:2885784924

字典及检索.ppt

  1. 1、本文档共116页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
字典及检索

字 典 与 检 索 基本概念 字典:字典是元素的有穷集合,其中每个元素 由两部分组成,分别称为元素的“关键码”和“属性” 例:英汉字典,其中的每个词条是一个元素,被解释的英文单词可以看作是该元素的关键码,词条中对单词的解释是元素的属性 特点: 字典中的两个元素能够根据其关键码进行比较,对 字典元素的存取、检索也是以关键码为依据进行的 在字典中最主要的运算是检索 基本概念(续) 检索:给定一个值key,在字典中找出关键码 等于key的元素 如果找到,则检索成功 否则检索失败 为了便于字典的维护,有时也要考虑在字典中插入和删 除元素的操作 字典的种类 静态字典:字典一经建立就基本固定不变,主要的操作 就是字典元素的检索 为静态字典选择存储方法主要需考虑检索效率及检索运算 的简单性 动态字典:经常需要改动的字典 对于动态字典,存储方法的选择不仅要考虑检索效率,还要考虑字典元素的插入、删除运算是否简便 基本概念(续) 衡量一个检索算法效率的主要标准 检索过程中和关键码的平均比较次数,即平 均检索长度ASL(Average Search Length),定义为∶ n是字典中元素的个数 pi是查找第i个元素的概率,若不特别声明,一般认为每个元素的检索概率相等,即pi=1/n,ci是找到第i个元素的比较次数 算法的空间开销,以及算法是否易于理解等 因素 基本概念(续) 假设: 字典元素类型相同,且关键码为数值类型 (例如正整数),因此,可以将字典元素按关 键码排序 顺序表示 字典的顺序表示定义如下∶ typedef int KeyType; typedef int DataType; typedef struct { KeyType key; /* 字典的关键码字段*/ DataType other; /* 字典的属性字段*/ }DicElement; typedef struct { DicElement element[MAXNUM]; int n; /* nMAXNUM,为字典中元素的个数 */ } SeqDictionary; *为了描述简单,将KeyType和DataType定义为int类型 顺序表示(续) 顺序检索 基本思想 从字典的一端开始顺序扫描,将字典中元素的关键码和给定值比较,如果相等,则检索成功; 当扫描结束时,还未找到关键码等于给定值 的元素,则检索失败 顺序表示(续) 顺序检索算法 算法结束时返回检索成功或失败信息 若检索成功,则参数position指向找到的元素位置 否则,position指向应插入元素的位置 顺序检索优点: 算法简单且适应面广。无论字典中元素是否有序 均可使用 顺序检索缺点: 平均检索长度较大,特别是当n很大时,检索效率较低 顺序表示(续) 算法分析 若找到的是第一个元素element[0],则比较次数 c1=1; 若找到的是第i个元素element[i-1],则比较次数 为ci=i;因此,顺序检索的平均检索长度为 ASL=1×P1+2×P2+…+n×Pn 假设每个元素的检索概率相等,即Pi=1/n,则平均 检索长度为∶ 因此,成功检索的平均比较次数约为字典长度的一 半,若字典中不存在关键码为key的元素,则需进 行n次比较。顺序检索的平均检索时间为ASL=O(n) 顺序表示(续) 二分法检索(二分检索)-是一种效率较高的检索方法 要求:字典元素按关键码排序 基本思想∶ 设字典有序地存放在数组中 首先将字典中间位置上元素的关键码和给定值 key比较,如果相等,则检索成功; 否则,若大于key,则在字典前半部分中继续进 行二分法检索,否则在字典后半部分中继续进行 二分法检索 经过一次比较就缩小一半的查找区间,如此进行下 去,直到检索成功或检索失败 顺序表示(续) 例题∶被检索字典中元素的关键码序列为∶ 05,10,18,25,27,32,41,51,68,73,99 检索关键码为25和78的元素 检索关键码为25的元素 [05 10 18 25 27 32 41 51 68 73 99] ↑ [05 10 18 25 27] 32 41 51 68 73 99 ↑ 05 10 18 [25 27] 32 41 51 68 73 99 ↑ 经过三次比

您可能关注的文档

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档