数据结构(C C++版)第10章 应用查找.pptxVIP

数据结构(C C++版)第10章 应用查找.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
查找是为了得到某个信息而进行的工作。在非数值运算问题中,数据存储量一般很大,为了在大量信息中找到某些值,就需要用到查找技术,而为了提高查找效率,就需要对一些数据进行排序。在本项目中,通过1个工作任务,向读者展示数据库(C语言)中的查找功能。 使用哈希法输出最大值 使 用 哈 希 法 输 出 最 大 值 使用哈希法输出最大值 查找的基本概念 顺序查找 二分查找 分块查找 二叉排序树 平衡二叉排序树 B树和B+树 哈希表的概述 哈希函数的构造方法 处理冲突的方法 哈希表的实现 哈希表的查找分析 1. 查 找 的 基 本 概 念 查找(search)又称为检索,是计算机软件开发中经常使用的一种重要操作之一。查找的方法有很多种,查找的目的就是从确定的数据结构中找出某个特定的记录。当数据量很大时,分析各种查找算法的效率就显得十分重要。在程序设计中,查找是对数据结构中的记录(和排序一样,在查找中把数据元素称为记录)进行处理时经常采用的一种操作。查找在许多程序中耗时最多,因此,一个好的查找方法会大大提高程序的运行速度。 2. 顺 序 查 找 顺序查找(Sequential search)也称线性查找,是一种最简单也是最常用的查找技术。顺序查找时,将每个结点的关键字和待查的关键字值进行比较,直到找出相等的结点或者找遍了表中所有结点,也没有相等的结点,前者称为查找成功,后者称为查找失败。执行顺序查找算法时,被查找的线性表可以是顺序存储的,也可以是链式存储的,对结点没有排序要求,因而顺序查找具有良好的适应性。 3. 二 分 查 找 二分查找(Binary Search)也称折半查找,它是一种效率较高的查找方法。二分查找对待查的线性表有两个要求:第一,必须采取顺序存储结构;第二,必须是按关键字大小排序的有序表。这里假设查找表按升序排列。 4. 分 块 查 找 分块查找的基本思想:根据给定的k值,先在索引表中进行顺序查找或二分查找以确定待查记录在哪一块中,然后在已确定的块中再进行顺序查找。 5. 二 叉 排 序 树 二叉排序树又称为二叉查找树(Binary Search Tree),它定义为或者是一棵空树,或者是具有下列性质的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)它的左、右子树也分别为二叉排序树。 6. 平 衡 二 叉 排 序 树 平衡二叉搜索树(Balanced Binary Tree)是一种结构平衡的二叉搜索树,即叶节点深度差不超过1,它能在O(log n)内完成插入、查找和删除操作。常见的平衡二叉搜索树包括:AVL,红黑树,Treap,Size Balanced Tree(SBT)等。 7. B 树 和 B + 树 B树(Balanced Tree),也有人称为B-树(其实“-”只是英文连字符,注意不要说成B减树),适用于组织动态的索引结构。当查找的文件较大,且存放在磁盘等直接存取设备中时,为了减少查找过程中对磁盘的读、写次数,提高查找效率,基于直接存取设备的读、写操作以“页”为单位的特征。1972年R.Bayer和E.M.McCreight提出了一种称之为B树的多路平衡查找树。它适合在磁盘等直接存取设备上组织动态的查找表。 8. 哈 希 表 的 概 述 哈希法又称散列法、杂凑法或关键字地址计算法等。这种方法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系H,使得p=H(k),H称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为H(k)的单元;以后当查找关键字为k的元素时,再利用哈希函数计算出该元素的存储位置p=H(k),从而达到按关键字直接存取元素的目的。 9. 哈 希 函 数 的 构 造 方 法 若对于关键字集合中的任一个关键字,经哈希函数映像到地址集合中任何一个地址的概率是相等的,则称此类哈希函数为均匀的哈希函数。换句话说,就是使关键字经过哈希函数得到一个“随机的地址”,以便使一组关键字的哈希地址均匀分布在整个地址区间中,从而减少冲突。 10. 处 理 冲 突 的 方 法 下面以创建哈希表为例,说明解决冲突的方法。常用的解决冲突的方法有以下四种。 (1)开放地址法 (2)再哈希法 (3)链地址法 (4)建立一个公共溢出区 11. 哈 希 表 的 实 现 哈希表的实现首先需要初始化一个哈希表作为存储结构,然后按哈希函数的计算值将记录存入相应的地址中。当哈希表建完后,主要的操作有:将关键字插入到哈希表、或从哈希表中删除指定关键字、已知关键字的记录进行查找、当结束操作时释放哈希表等。 12. 哈 希 表 的 查 找 分 析 由于冲突的存在,哈希法仍需进行关键字比较,

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档