数据结构——基于Python语言(微课版) 课件T12_基于线性表的查找算法.pptx

数据结构——基于Python语言(微课版) 课件T12_基于线性表的查找算法.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于线性表的查找算法第六章主讲:周翔

回顾请思考如何用邻接表来存储图。请简述图的广度优先遍历和深度优先遍历。

预习检查请描述一下折半查找的算法思想。请回答构造哈希函数有哪几种方法。

本章目标3树表的查找重点了解掌握2哈希表的查找线性表的查找1

查找的基本概念查找的定义是在一些(有序的/无序的)数据元素中,通过一定的方法找出与给定关键字相同的数据元素。

查找的基本概念列表:由同一类型的数据元素(或记录)构成的集合,可利用任意数据结构实现。关键字:数据元素的某个数据项的值,用它可以标识列表中的一个或一组数据元素。主关键字:惟一标识列表中的一个数据元素次关键字:不是主关键字,就为次关键字当数据元素仅有一个数据项时,数据元素的值就是关键字

查找的基本概念查找:根据给定的关键字值,在特定的列表中确定一个其关键字与给定值相同的数据元素,并返回该数据元素在列表中的位置。静态查找:在查找过程中只是对数据元素进行查找动态查找:在实际查找的同时,插入找不到的元素,或从查找表中删除已查到的某个元素

查找的基本概念查找的基本方法:比较式查找法计算式查找法-HASH(哈希)查找法基于线性表的查找法基于树的查找法

查找的基本概念在查找算法中要用到三类参量:①查找对象K(找什么)②查找范围L(在哪找)③查找的结果(K在L中的位置)①、②为输入参量,在函数中不可缺少③为输出参量,可用函数返回值表示

查找的基本概念平均查找长度(ASL):为确定数据元素在列表中的位置,需和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度。平均查找长度(ASL)的计算方式对于长度为n的列表,查找成功时的平均查找长度为:Pi为查找列表中第i个数据元素的概率Ci为找到列表中第i个数据元素时,已经进行过的关键字比较次数。ASL=P1C1+P2C2+…+PnCn=?i=1nPiCi

基于线性表的查找法顺序表的查找法有序表的查找法索引顺序查找法

顺序表的查找法基本思想:从表的一端开始,顺序扫描线性表,依次将扫描到的元素的关键字与给定的关键字k相比较。若当前扫描到的结点关键字与k相等,则查找成功;若扫描结束后,仍未找到关键字与k相等的元素,则查找失败。dagw…kqo

顺序表的查找法平均查找长度(ASL)的计算方式假设列表长度为n,查找从最后一个元素开始找起:查找第1个元素,需进行n次比较;查找第2个元素,需进行n-1次比较;…………查找第n个元素,需进行1次比较又假设查找每个数据元素的概率相等,即Pi=1/n则顺序查找算法的平均查找长度为: ASL=1*1/n+2*1/n+…+n*1/n =(1+2+…+n)*1/n=(n+1)/2

顺序表的查找法假设列表长度为n,从最后一个元素开始找起:查找第i个元素,需进行()次比较?若顺序查找法从第一个元素开始找起,则平均查找长度为()?n-i+1(n+1)/2,一样!

顺序表的查找法顺序表的查找算法的特点算法简单,对表结构无任何要求(顺序和链式)n很大时查找效率较低改进措施:非等概率查找时,可按照查找概率进行排序。

有序表的查找法有序表是元素有序排列的查找表,它也是顺序表中的一种,但相比于无序表来说,有序表中的元素都是有序排列的,因此查找时会有一些效率更高的方法。常用的有序查找算法:折半查找插值查找斐波那契查找

有序表的查找法——折半查找法(二分查找法)前提条件:必须采用顺序存储结构必须按关键字大小有序排列!!!基本思想:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

有序表的查找法——折半查找法(二分查找法)假设要查找元素:e=42121728313336384259middleleft=1right=9middle=512345678967比较次数:1比较次数:288比较次数:3middleleftrightleft4233423842==42

有序表的查找法——折半查找法(二分查找法)用折半查找法查找12的过程:

有序表的查找法——折半查找法(二分查找法)

有序表的查找法——折半查找法(二分查找法)用折半查找法查找50的过程:

有序表的查找法——折半查找法(二分查找法)当highlow时,表示不存在这样的子表空间,查找失败!!!!

有序表的查找法——折半查找法(二分查找法)折半查找法的平均查找长度(ASL)

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档