- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构(Java版)》 叶核亚 《数据结构(Java版)》 第1章 绪论 第2章 线性表 第3章 栈与队列 第4章 串 第5章 数组和广义表 第6章 树和二叉树 第7章 图 第8章 查找 第9章 排序 第8章 查找 8.1 查找的基本概念 8.2 基于线性表的查找 8.3 树结构的查找 8.4 散列 目的:查找算法设计。 要求:掌握给定数据结构的查找操作,掌 握提高查找效率采取的各种方法。 重点:二叉排序树,散列表。 难点:二叉排序树,散列表。 8.1 查找的基本概念 查找表 :一般,假定被查找的对象是由一组相同类型的数据元素的有限集合。每个数据元素可由若干个数据项组成,并假设每个数据元素都有一个能惟一标识该元素的关键字。 查找(Searching) :给定一个值K,在含有n个数据元素的表中找出关键字等于给定值K的数据元素。若找到,则查找成功,返回该元素的信息或该元素在表中的位置;否则查找失败,返回相关的指示信息。 8.1 查找的基本概念 查找方法 查找的方法有很多,不同的数据结构及条件可以采用不同的查找算法,以求快速高效地得到查找结果。 对于数据量较小的线性表,可以采用顺序查找算法。例如,从电话簿的第一个数据元素开始,依次将数据元素的关键字与K比较,进行查找操作。 当数据量较大时,采用分块查找算法。例如,在字典中查找单词state,顺序查找算法是可以实现的,但速度慢、效率低。由于字典是按字母顺序排列的,只要在以字母s开头的范围内,再根据state后几个字母的顺序,就可以快速准确地定位state,查阅state的含义。 8.1 查找的基本概念 查找算法的性能评价-----平均查找长度 查找运算的主要操作是关键字的比较,所以通常把查找过程中对关键字需要执行的平均比较次数(也称为平均查找长度)作为衡量一个查找算法效率优劣的标准。 平均查找长度(Average Search Length,ASL)定义为: 其中,n是结点的个数。Pi是查找第i个结点的概率。若不特别声明,认为每个结点的查找概率相等,即为1/n。 Ci是找到第i个结点所需进行的比较次数。 8.1 查找的基本概念 静态查找表和动态查找表 可对查找表进行的操作有: 查询某个特定的数据元素是否在查找表中 检索查找表中某个特定数据元素的属性 在查找表中插入一个数据元素 从查找表中删除一个数据元素 如果不需要对一个查找表进行插入、删除操作,则该查找表称为静态查找表(static search table);反之称为动态查找表(dynamic search table) 。 8.2 基于线性表的查找 8.2.1 顺序查找 8.2.2 折半查找 8.2.3 分块查找 8.2.1 顺序查找 又称线性查找,从线性表的一端开始逐个进行记录的关键字和给定值的比较。 1.顺序表的顺序查找 2.单向链表中查找结点 public NodeE search(E element, NodeE start) //从单链表结点start开始顺序查找指定对象 { //若查找成功返回结点,否则返回null if (this.head==null || element==null) return null; NodeE p=start; while (p!=null !element.equals(p.data)) { System.out.print(p.data+? ); p = p.next; } return p; } 3.算法分析 8.2.2 折半查找 二分查找过程 二分查找过程 8.2.2 折半查找 2、算法描述 设表长为data.length,left、right和mid分别指向待查元素所在区间的上界、下界和中点,k为给定值 初始时,令left =0, right = data.length-1,mid=(left+high)/2? 让k与mid指向的记录比较 若k==data[mid],查找成功 若k data[mid] ,则right =mid-1 若k data[mid] ,则left =mid+1 重复上述操作,直至left right时,查找失败 8.2.2 折半查找 3、算法分析:二分查找的过程可用二叉数来描述,描述查找过程的二叉树叫判定树或比较树。 8.2.2 二分查找
您可能关注的文档
最近下载
- 《SPSS统计分析与应用》课程大纲(本科).pdf VIP
- 2024江西建设职业技术学院招聘笔试真题及参考答案详解1套.docx VIP
- GB 50168-2018 电气装置安装工程电缆线路施工及验收标准.docx VIP
- 某公司年产30万吨铸铁件项目投资建设可行性研究论证报告.doc
- Yokogawa横河电机UT55A UT52A Digital Indicating Controller Operation Guide for Single-loop Control (for Detailed code model)使用说明书.pdf
- 选择估价方法—估价技术路线(房地产估价课件).pptx
- 2017款18上汽荣威e950_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 2025中国睡眠健康研究白皮书.pdf.docx
- 110kV变电站新建工程强条实施计划.docx VIP
- 丽江市检察机关招聘聘用制书记员笔试真题2023.pdf VIP
文档评论(0)