数据结构(Python Java)(微课版) 课件 8.2 线性表查找_第1页
数据结构(Python Java)(微课版) 课件 8.2 线性表查找_第2页
数据结构(Python Java)(微课版) 课件 8.2 线性表查找_第3页
数据结构(Python Java)(微课版) 课件 8.2 线性表查找_第4页
数据结构(Python Java)(微课版) 课件 8.2 线性表查找_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构与算法设计顺序查找二分查找分块查找8.2线性表查找查找过程:从表的一端开始逐个进行记录的关键字和给定值的比较顺序查找查找成功时,平均查找长度约为元素个数的一半查找算法的时间复杂度为O(n)顺序查找的评价顺序查找的优点算法简单顺序表或用链表均适用结点是否按关键字有序,都同样适用顺序查找的缺点查找效率低提高顺序查找的效率合理安排结点位置,使访问越频繁的数据,比较的次数越少顺序查找算法分析条件顺序表表中数据元素按关键字有序基本思想每次将待查记录所在区间缩小一半二分查找实现过程的思想确定查找区间的中点mid将待查的K值与arr[mid].key比较若相等,查找成功并返回此位置若不相等,确定新的查找区间,返回①,重新开始二分法查找当high<low时,查无此值,结束查找二分查找4,11,23,29,31,47,55,68,84,96

查找的关键字K=68。4,11,23,29,31,47,55,68,84,96查找的关键字K=21。虽然二分查找的效率高,但是要将表按关键字排序只适用于顺序存储结构,不适用于链表为保持表的有序性,在顺序结构里插入和删除都必须移动大量的结点适用于表结点比较稳定的,很少做插入或删除操作的顺序表二分查找的特点查找过程将表分成几块,块内无序,块间有序先确定待查记录所在块,再在块内查找适用条件后一个子表中,所有记录的关键字均大于前一个子表中的最大关键字算法实现顺序存储待查记录,每个数据元素包含关键字域建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针分块查找分块查找分块查找表由“分块有序”的线性表和索引表组成块间有序,块内无序索引表有序又称“索引顺序查找”假设:表中有10000个结点顺序查找平均比较5000次二分查找平均比较14次分块查找将其分成100个数据块,每块含100个数据元素顺序查找确定块,块内顺序查找,平均比较57次分块查找算法分析并不一定要将块分成均等大小如:一个学校的学生登记表,可以班为块,将各块存放于不同的顺序表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论