- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二级VB公共基础3字典与检索
字 典 与 检 索 基本概念 字典:字典是元素的有穷集合,其中每个元素由两部分组成,分别称为元素的“关键码”和“属性” 检索:给定一个值key,在字典中找出关键码等于key的元素 如果找到,则检索成功 否则检索失败 为了便于字典的维护,有时也要考虑在字典中插入和删除元素的操作 字典的种类 静态字典 动态字典 基本概念(续) 衡量一个检索算法效率的主要标准 检索过程中和关键码的平均比较次数,即平均检索长度ASL(Average Search Length),定义为∶ n是字典中元素的个数 pi是查找第i个元素的概率,若不特别声明,一般认为每个元素的检索概率相等,即pi=1/n ci是找到第i个元素的比较次数 基本概念(续) 假设: 字典元素类型相同,且关键码为数值类型(例如正整数),因此,可以将字典元素按关键码排序 顺序检索 顺序检索 基本思想 从字典的一端开始顺序扫描,将字典中元素的关键码和给定值比较,如果相等,则检索成功; 当扫描结束时,还未找到关键码等于给定值的元素,则检索失败 二分检索 二分法检索(折半检索)-是一种效率较高的检索方法 要求:字典元素按关键码排序 基本思想∶ 设字典有序地存放在数组中 首先将字典中间位置上元素的关键码和给定值key比较,如果相等,则检索成功; 否则,若大于key,则在字典前半部分中继续进行二分法检索,否则在字典后半部分中继续进行二分法检索 经过一次比较就缩小一半的查找区间,如此进行下去,直到检索成功或检索失败 散列表示 最大优点是,执行元素的插入、删除、检索运算平均仅要求常数的时间 基本概念 散列表:用散列法表示的字典称为“散列表”,散列法又称为“杂凑法”或“关键码—地址转换法” 散列法: 设给定一个字典元素,其关键码为key; 将key看成自变量,按一个确定的散列函数h计算出h(key); 根据该值再进行字典元素的插入和删除操作 碰撞:如果两个不相等的关键码key1和key2,用散列函数h得到相同的散列地址,即h(key1)=h(key2),这种现象称为“碰撞” 基本区域:h(key)的值域所对应的地址空间称为基本区域 基本概念(续) 负载因子: 当α1时碰撞不可避免 负载因子的大小要取得适当,既要减少碰撞,又不浪费存贮空间 基本概念(续) 散列表建表过程 将key看成自变量,按一个确定的散列函数h计算出h(key),如果以该值为地址的存贮空间未被占用,则将元素存入该单元; 如果存贮单元已经存放了其它的元素,则用另一函数I计算出I(h(key)),若以该值为地址的单元也被占用,则再用I函数计算,直到找到空的单元将元素存入为止 基本概念(续) 散列表检索过程 首先计算h(key),以该值为地址在地址空间中查找,如果该地址空间未被占用,则说明检索失败; 否则用该元素的关键码与要查找的key比较,如果相等则检索成功,否则用函数I计算出I(h(key)); 如此反复直到求出的某地址空间未被占用(检索失败)或者地址中存放的元素的关键码与key相等(检索成功)为止 散列函数 要提高检索的效率,散列函数的选取非常关键 选取散列函数的原则: 根据字典元素关键码集合的特性选取散列函数,使计算出的地址尽可能均匀地分布在地址空间中 为了提高关键码到地址的转换速度,散列函数应该尽量简单 散列函数(续) 常用的散列函数 数字分析法 除余法 折叠法 解决碰撞的方法 开地址法 线性探查法 双散列函数法 拉链法 字典的二叉树表示 基本概念 二叉排序树具有以下性质∶ 如果任一结点的左子树非空,则左子树中的所有结点的关键码都小于根结点的关键码; 如果任一结点的右子树非空,则右子树中的所有结点的关键码都大于根结点的关键码。 用二叉排序树表示字典,树中的一个结点对应于字典中的一个元素。 二叉树表示(续) 关键码集合K={18,73,10,05,68,99,27,41,51,32,25}得到的一棵二叉排序树 二叉排序树的运算 二叉排序树的检索 方法:二叉排序树中查找某个结点和二分法检索相似,也是逐步缩小检索范围的过程,比线性检索的效率高得多 二叉排序树的插入和构造 二叉排序树的删除 二叉排序树的删除 第一种方法∶ 如果被删除结点p没有左子树,则用p的右子女代替p即可 否则,在p的左子树中,找出关键码最大的节点r (r处于p左子树最右下角,r一定无右子女),将r的右指针指向p的右子女,用p的左子女代替p结点 二叉树表示(续) 第二种方法∶ 如果被删除结点p没有左子树,则用p的右子女代替p即可 同第一中方法找到r结点后,将r删除(r一定无右子女,用r的左子女代替r结点即可) 用r结点代替被删除的结点即可 * 删除73 18 10 05 73 27 41 51 99 32 25 → r 18 10 05 27
您可能关注的文档
- 2010——2011语文学科计划.doc
- k小学2011年安全教育周活动方案.doc
- 2012年监理工程师考试监理理论简答题.doc
- IIS7.0+PHP+Mysq配置.doc
- 65高风险诊疗技术操作授权及审批管理制度.doc
- 利用TFTP、DHCP和PXE自架Linux网络(自动)安装服务器.doc
- 2011级第一次月考数学试卷2.doc
- 安全法及相关法律知识真题2010年.doc
- 文档数据库(DOMINO).doc
- 服装供应链智能化与防伪系统.doc
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)