数据结构算法动图识记_考研知识难点-计算机综合(408)数据结构-查找

2022年的小伙伴们正在积极备考,大多数考生对计算机综合(408)考研知识点都感到很茫然。研学长为大家按照2020年考研大纲的考察目标对计算机综合(408)考研知识点进行了系统化的整合。下面,各位考生就跟着研学长一起了解一下“考研知识点-计算机综合(408)数据结构-查找 ”,希望能给各位考生带来帮助。

这一章,需要识记关键字、主关键字、次关键字的含义;静态查找与动态查找的含义及区别; 平均查找长度ASL的概念念及在各种查找算法中的计算方法和计算结果, 特别是一些典型结构的ASL值, B-树的概念和基本操作冲突解决方法的选择和冲突处理过程的描述,B+树的概念(新增考点),特别要注意B-树和B+树概念的对比,以及Hash表相关的概念。要熟练掌握序表、链表、二叉树上的查找方法,特别要注意顺序查找、二分查找的适用条件(比如链表上用二分查找就不合适)和算法复杂度。

考研-计算机综合(408)-知识点01-分块查找法

索引项包括两个字段:关键码字段(存放对应子表中的最大关键码值);指针字段(存放只想对应子表的指针),并且要求索引项按关键码字段有序。

查找时,先用给定值key在索引表中检测索引项,以确定所要进执行的查找表中的查找分块(由于索引项按关键码字段有序,可用顺序查找或折半查找)然后对于该分块,在对该分块进行顺序查找。

分块查找的平均查找长度由两部分构成,即查找索引表时的平均查找长度为LB,以及在相应块内进行顺序查找的平均查找长度为Lw, AS Lbs=LB+Lw。

考研-计算机综合(408)-知识点02-字符串模式匹配

(一)简单匹配算法

假设我们要从主串s="goodgoogle"找到t="google"这个子串的位置,我们需要下列步骤

1、主串s的第1位开始,s与t前三个字符都匹配成功,第四个字符不匹配(竖线表示相等,闪电状弯折表示不想等)

2、主串s的第2位开始,匹配失败

3、主串s的第3位开始,匹配失败

4、主串s的第4位开始,匹配失败

5、主串s的第5位开始,s与t,6个字符全部匹配成功

对主串的每一个字符作子串开头,要与匹配的字符串进行匹配。对主串作大循环,每一个字符开头作t长度的小循环,直到匹配成功或者全部遍历完为止。

复杂度:

最好的情况,比如在"googlegood"中找"google",时间复杂度为O(1)

稍差一点,比如"abcdefgoogle"中找"google",时间复杂度O(n+m),其中n为主串长度,m为子串长度,根据等概率原则,平均(n+m)次查找,时间复杂度为O(n+m)

最坏的情况,每次不成功都发生在串t的最后一个字符,比如子串t="0000000001",9个"0"和一个"1";主串s="00000000000000000000000000000000000000000000000001",49个"0"和一个"1";时间复杂度为O((n-m+1)*m)

(二)KMP匹配算法

假设主串s="abcdefgab",t="abcdex"

"abcdex"的首字符"a"与后面的串"bcdex"中任何一个字符都不相等,子串t与主串s的前5个字符分别相等,意味着子串t的首字符"a"不可能与s串的第2位到第5位的字符相等

上面的案例,子串t中没有重复的字符,下面给出一个有重复字符的例子

假设s="abcababca",t="abcabx"

第一步,前5个字符相等,第6个字符不相等,根据前面的经验,t的首字符"a"与t中第二位、第三位字符军部等,不需要判断

子串t中第1位与第4位相等,第2位与第5位相等;主串s中第4位,第5位分别与子串t中第4位,第5位相等,意味着子串的第1位与第2位分别与主串第4位与第5位相等,不需要判断

总结:i值不回溯,j值的变化只与子串有关,取决于t串中的结构中是否有重复的字符串。

我们把t串各个位置的变化定义为一个数组next,next的长度就是t串的长度

时间复杂度:对于get_next来说,t的长度为m,由于只涉及到简单循环,其时间复杂度为O(m);i的值不回溯,主串的长度为n,while循环的时间复杂度为O(n),因此整个代码的数减复杂度为O(n+m)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值