数据结构预算法第九章查找(41页PPT).pptx
《数据结构预算法第九章查找(41页PPT).pptx》由会员分享,可在线阅读,更多相关《数据结构预算法第九章查找(41页PPT).pptx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、9.19.1 查找的基本概念查找的基本概念9.2 静态查找9.39.3 动态查找动态查找9.49.4第一页,编辑于星期二:四点五分。v 9.1 9.1 查找的基本概念查找的基本概念v1.1.查找表:查找表:由同一类型的数据元素(或记录)构成的集合称为查找表。v2.2.对查找表进行的操作:对查找表进行的操作:v(1)查找某个特定的数据元素是否存在。v(2)检索某个特定数据元素的属性。v(3)在查找表中插入一个数据元素。v(4)在查找表中删除一个数据元素。v3.3.静态查找:静态查找:在查找过程中仅查找某个特定元素存在或查找其属性,称为静态查找。第二页,编辑于星期二:四点五分。v4.4.动态查找:
2、动态查找:在查找过程中对查找表进行插入或删除元素操作,称为动态查找。v5.5.关键字:关键字:数据元素(或记录)中某个数据项的值,用它可以标识数据元素(或记录)。v6.6.主关键字:主关键字:可以唯一地标识一个记录的关键字称为主关键字。v7.7.次关键字:次关键字:可以标识若干个记录的关键字称为次关键字。v8.8.查找:查找:在查找表中确定是否存在一个数据元素的关键字等于给定值的操作,称为查找(或检索)。若表中存在这样一个数据元素(或记录),则查找成功;否则,查找失败。v9.9.内查找和外查找:内查找和外查找:若整个查找过程全部在内存进行,则称为内查找;若在查找过程中还需要访问外存,则称为外查
3、找。v10.10.平均查找长度:平均查找长度:查找算法的效率,主要是看要查找的值与关键字的比较次数,通常用平均查找长度来衡量。对一个含n个数据元素的表,查找成功时:v v 其中,n是查找表中记录的个数。pi是查找第i个记录的概率,一般地,均认为每个记录的查找概率相等,即pi=1/n(1in),ci是找到第i个记录所需进行的比较次数第三页,编辑于星期二:四点五分。9.2 9.2 静态查找表静态查找表具有具有顺序查找法顺序查找法、折半查找法折半查找法和和分块查找法分块查找法三种三种9.2.1 顺序查找顺序查找顺序查找法的特点是:用顺序查找法的特点是:用所给关键字与线性表中各元素的关键字逐个所给关键
4、字与线性表中各元素的关键字逐个比较,直到成功或失败。比较,直到成功或失败。监视哨的作用:监视哨的作用:(1)省去判定循环中下标越界的条件,从而节约比较时间。)省去判定循环中下标越界的条件,从而节约比较时间。(2)保存查找值的副本,查找时若遇到它,则表示查找成功。这样在)保存查找值的副本,查找时若遇到它,则表示查找成功。这样在从后向前查找失败时,不必判断查找是否检测完,从而达到算法统一。从后向前查找失败时,不必判断查找是否检测完,从而达到算法统一。第四页,编辑于星期二:四点五分。用平均查找长度分析顺序查找算法的性能:用平均查找长度分析顺序查找算法的性能:假设假设列表长度为列表长度为n,那么查找第
5、,那么查找第i个数据元素时需进行个数据元素时需进行n-i+1次比较,即次比较,即Ci=n-i+1。又假设查找每个数据元素的概率相等,。又假设查找每个数据元素的概率相等,即即Pi=1/n,则顺序查找算法的平均查找长度为:,则顺序查找算法的平均查找长度为:ASL=i=1nPiCin1i=1nCin1i=1n(n-i+1)=21(n+1)顺序查找的缺点:顺序查找的缺点:当当n很大时,平均查找长度较大,效很大时,平均查找长度较大,效率低;率低;优点:优点:对表中数据元素的存储没有要求。另外,对于对表中数据元素的存储没有要求。另外,对于线性链表,只能进行顺序查找。线性链表,只能进行顺序查找。第五页,编辑
6、于星期二:四点五分。9.2.2 折半查找法折半查找法(二分法查找法)(二分法查找法)条件:条件:要求要求待查找的列表必须是待查找的列表必须是按关键字大小有序排列的顺序按关键字大小有序排列的顺序表表。基本过程:基本过程:将表中间位置记录的关键字与查找关键字比较,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一找关键字,则进一步查找前一子表,否则进一步查找后
7、一子表。重复以上过程,直到找到满足条件的记录,使查找子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。成功,或直到子表不存在为止,此时查找不成功。第六页,编辑于星期二:四点五分。例如用折半查找法查找例如用折半查找法查找10、50的具体过程,的具体过程,其中其中mid=(low+high)/2,当,当highlow时,表示不存在这样的子表时,表示不存在这样的子表空间,查找失败。空间,查找失败。605846352825221815126 1 2 3 4 5 6 7 8 9 10 11low=1mid=6high=116058463528252218151
8、26 1 2 3 4 5 6 7 8 9 10 11low=1 mid=3high=5用折半查找法查找用折半查找法查找12的过程为:的过程为:第七页,编辑于星期二:四点五分。605846352825221815126 1 2 3 4 5 6 7 8 9 10 11low=1mid=1high=2605846352825221815126 1 2 3 4 5 6 7 8 9 10 11low=2mid=2high=2第八页,编辑于星期二:四点五分。用折半查找法查找用折半查找法查找50的过程:的过程:605846352825221815126 1 2 3 4 5 6 7 8 9 10 11low=
9、1mid=6high=11605846352825221815126 1 2 3 4 5 6 7 8 9 10 11low=7 mid=9high=11第九页,编辑于星期二:四点五分。605846352825221815126 1 2 3 4 5 6 7 8 9 10 11low=10mid=10high=11605846352825221815126 1 2 3 4 5 6 7 8 9 10 11low=10high=9第十页,编辑于星期二:四点五分。用平均查找长度分析折半查找算法的性能:用平均查找长度分析折半查找算法的性能:折半查找成功时的平均查找长度为:折半查找成功时的平均查找长度为:A
10、SLbsi=1nPiCin1j=1nj2j-1nn+1log2(n+1)-1优点:优点:比较次数少,查找速度快,平均性能好。比较次数少,查找速度快,平均性能好。缺点:缺点:要求待查的表为有序表,且插入、删除困难。要求待查的表为有序表,且插入、删除困难。第十一页,编辑于星期二:四点五分。9.2.3 分块查找法分块查找法分块查找法要求将列表组织成以下索引顺序结构:分块查找法要求将列表组织成以下索引顺序结构:首先将列表分成若干个块(子表)。首先将列表分成若干个块(子表)。一般情况下,块的长度均一般情况下,块的长度均匀,最后一块可以不满。每块中元素任意排列,即块内无匀,最后一块可以不满。每块中元素任意
11、排列,即块内无序,但块与块之间有序。序,但块与块之间有序。构造一个索引表。其中每个索引项对应一个块并记录每块的构造一个索引表。其中每个索引项对应一个块并记录每块的起始位置,和每块中的最大关键字(或最小关键字)。索引表起始位置,和每块中的最大关键字(或最小关键字)。索引表按关键字有序排列。按关键字有序排列。第十二页,编辑于星期二:四点五分。下图为一个索引顺序表下图为一个索引顺序表25 58 888871605836453228825121418索引表索引表各块内的最大关键字各块内的最大关键字各块的起始地址各块的起始地址列表列表 0 1 2 3 4 5 6 7 8 9 10 11 12此表包括三个
12、块,第一个块的起始地址为此表包括三个块,第一个块的起始地址为0,块内最大,块内最大关键字为关键字为25;第二个块的起始地址为第二个块的起始地址为5,块内最大关键字,块内最大关键字为为58;第三个块的起始地址为第三个块的起始地址为10,块内最大关键字为,块内最大关键字为88。第十三页,编辑于星期二:四点五分。分块查找的基本过程为:分块查找的基本过程为:(1)首先,将待查关键字首先,将待查关键字K与索引表中的关键字进行比较,以与索引表中的关键字进行比较,以确定待查记录所在的块。具体的可用顺序查找法或折半查找法进行。确定待查记录所在的块。具体的可用顺序查找法或折半查找法进行。(2 2)进一步用顺序查
13、找法,在相应块内查找关键字为)进一步用顺序查找法,在相应块内查找关键字为K的元的元素。素。第十四页,编辑于星期二:四点五分。分块查找的平均查找长度分块查找的平均查找长度由两部分组成:即查找索引表时的平均由两部分组成:即查找索引表时的平均查找长度为查找长度为LB,以及在相应块内进行顺序查找的平均查找长度,以及在相应块内进行顺序查找的平均查找长度LW。ASLbs=LB+LW 假定假定将长度为将长度为n的表分成的表分成b块,且每块含块,且每块含s个元素,则个元素,则b=n/s。又假定表中每个元素的查找概率相等,则每个索引项的查找概又假定表中每个元素的查找概率相等,则每个索引项的查找概率为率为1/b,
14、块中每个元素的查找概率为,块中每个元素的查找概率为1/s。若用顺序查找法确。若用顺序查找法确定待查元素所在的块,则有:定待查元素所在的块,则有:第十五页,编辑于星期二:四点五分。LBb1jj=1bb12Lws1ji=1ss12ASLbs=LB+LW 2b+s+1将将b=n/s代入,得代入,得ASLbs21+1sn+s)(第十六页,编辑于星期二:四点五分。三种查找方法比较三种查找方法比较顺序查找顺序查找折半查找折半查找分块查找分块查找ASL大大小小 中中表结构要求表结构要求无无有序表有序表 分段有序分段有序(块之间有序)(块之间有序)第十七页,编辑于星期二:四点五分。v9.3 9.3 动态查找动
15、态查找v9.3.1 9.3.1 二叉排序树二叉排序树1.1.二叉排序树的定义二叉排序树的定义二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于根结点的值。(2)若右子树不空,则右子树上所有结点的值均大于根结点的值。(3)左、右子树也都是二叉排序树。2.2.二叉排序树的构造二叉排序树的构造根据二叉排序树的性质,每次都按结点大小从根结点查找到对应的插入位置插入。第十八页,编辑于星期二:四点五分。例:有一组结点的关键字大小分别为:45、12、53、3、37、24、100、61、90、78求由这些结点构造成的二叉排序树的过程如图所示。第十九页,编辑于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 预算法 第九 查找 41 PPT
限制150内