- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 查找过年啦!照年俗,正月初一起床就去包大汤圆煮,在有些大汤圆里面包上小硬币,谁吃到寓意来年发财发大财!难了,摆在我面前的那么多碗,我到底选哪一碗?那一碗里又是哪一个汤圆包了发财硬币的?查找吧!本章讲解查找。理解查找基本概念;掌握各种静态表查找算法;掌握二叉排序树查找算法;了解平衡二叉树查找算法;理解哈希表查找算法;灵活应用查找。提纲10.1 查找基本概念10.2 静态表查找10.3 动态表查找10.4 哈希表查找10.5 查找应用10.6 查找学习总结10.1 查找基本概念定义查找表:被查找的对象。主关键字可以唯一识别。举例:公司每天产生的邮件很多,小王出差办事忙,已经有3天没有时间看邮件了。回来后,同事告诉他公司整体调薪了,具体数据每个人私邮了的。兴奋之余,小王打开邮箱,密密麻麻信件太难找了!还好,有个搜索查找功能,输入时间范围3天前到现在,输入关键字“薪”/“工资”,回车见到了!这个例子说明,查找在我们生活中几乎天天在、无处不在。10.1 查找基本概念2.分类按照操作方式分为静态查找表和动态查找表。按照查找是否在内存完成分为内查找和外查找。按照查找是否按照地址查找分为哈希表和非哈希表。10.1 查找基本概念3.性能查找的性能主要是由关键字比较次数决定的。关键字平均比较次数也就是平均查找长度(ASL,Average Search Length)是作为查找算法效率优劣的依据。10.1 查找基本概念求ASL举例,如表10.1所示的查找表和找到关键字时比较的次数。10.2 静态表查找静态表在查找时不做插入、删除操作,所以顺序表适合做静态表查找。顺序表查找类SqListSearch描述10.2.1 顺序查找举例:大小英语四级考试的考场里,考生就位之后监考老师从座位号1开始逐一检查考试证件,与手上的名单对照,若正确则到下一个,若不正确就找到了问题考生。在这个例子中,按座位号逐一查找是否有问题考生便是顺序查找。10.2.1 顺序查找【算法10.1】设计1个算法,对R[0..n-1]进行顺序查找,若找到返回序号,否则返回-1。思路:(1)从顺序表的一端开始依次遍历,将遍历的元素关键字和给定值k相比较,(2)若两者相等,则查找成功,返回该元素的序号。(3)若遍历结束后,仍未找到关键字等于k的元素,则查找失败,返回-1。代码见算法10.110.2.2 二分查找在关键字有序序列(2,4,7,9,10,14,18,26,32,40)中采用二分查找方法查找关键字为7的元素。10.2.2 二分查找显然,二分查找的平均性能与判定树的高度h=log2(n+1)有关二分查找的性能可以用判定树描述。10.2.2 二分查找?【算法10.2】设计1个非递归算法,对R[0..n-1]进行二分查找,若找到返回序号,否则返回-1。思路:(1)初始化查找表R[low..high]的中点位置。(2)若,则查找成功并返回该元素的序号mid。(3)若,则在左子表R[low..mid-1]中查找。(4)若,则在右子表R[mid+1..high]中查找。(5)重复(2)或(3),要么找到而返回mid,要么没找到而返回-1。代码见算法10.210.2.3 分块查找举例:每场期末考试考前要在黑板上画出座位号。学生如果从1数到自己座位号找到自己座位,有点糟糕!何不,先确定自己的座位号落在哪一列(区间),再到那一列去找,效率高多了嘛!10.2.3 分块查找设查找表为(8,14,6,9,10,22,34,18,19,31,40,38,54,66, 46,71,78,68,80,85, 100, 94,88,96,87),查找关键字为80的元素。10.2.3 分块查找?分块查找的ASL是索引表中二分查找的ASL与块内顺序查找的ASL之和,即:,其中s为每块元素个数,分块个数。10.2.3 分块查找【算法10.4】设计1个算法,在顺序表R[0..n-1]和索引表I[0..b-1]中进行分块查找,若找到返回序号,否则返回-1。思路:(1)根据查找表长度进行分块,由每1块的最大值/最小值构造索引表。(2)对索引表进行顺序/二分查找,找到对应查找表中的分块。(3)对查找表对应的分块中进行顺序查找。代码见算法10.410.3 动态表查找动态表在查找时要做插入或删除操作,所以链表树表适合做动态表查找。10.3.1 二叉排序树查找显然,对二叉排序树进行中序遍历,序列为有序序列。左孩子小于根,右孩子大于根10.3.1 二叉排序树查找二叉排序树节点类BSTNode描述二叉排序树类BST描述10.3.1 二叉排序树查找已知1组关键字为(25,18,46,2,53,39,32,4,74,67,60,11),按表中的元素顺序依次插入到1棵初始为空的二叉排序树中,画出该二叉排序树,并求等概率情况下的ASL成
您可能关注的文档
- 第4章 短视频营销与变现:快速抓住流量红利.pptx
- 第5章 短视频运营实战:抖音短视频运营.pptx
- 第6章 直播内容策划:用创意内容增强观众黏性.pptx
- 第8章 直播运营实战:淘宝与抖音直播运营.pptx
- 第9章 融合运营:短视频与直播融合运营案例.pptx
- 第1章 认识短视频与直播: 内容消费新格局.pptx
- 第2章 短视频内容策划:打开创作新思维.pptx
- 第7章 树和二叉树.pptx
- 第3章 栈和队列.pptx
- 第6章 数组和特殊矩阵.pptx
- 2025年一年级语文下册生字表100字.pdf
- 2025年一年级语文下册阅读理解考前专项练习及答案语文S版.pdf
- 2025年一年级语文各课教学反思(通用8篇).pdf
- 2025年一年级语文上册第三单元教案.pdf
- 会议策划与组织 课件 第7、8章 会后落实工作; 会议文书.pptx
- 2025年一建机电试题.pdf
- 2025年一建水利工程项目法人人员配置.pdf
- 2025年长治职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年长治职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 会议策划与组织 课件 第9、10章 会议财务管理; 秘书会务工作教学实训.pptx
文档评论(0)