大连

首页 » 常识 » 常识 » 大连海事大学计算机考研KMP排序
TUhjnbcbe - 2023/9/22 20:29:00
中科白癜风国庆专家会诊 https://wapyyk.39.net/hospital/89ac7_registers.html

题型判断(20*1)+选择(10*2)+简答(含树和森林的转化,时间复杂度,二叉排序树,平衡二叉树,KMP,Hash表,程序输出等)+证明(15*1)+编程(15*1)

KMP排序

这种类型的题不难,掌握了方法就没问题,主要是注意细心,以及要有足够的熟练度。例题

编号j写成Next前两个,无论什么字段,都记为0,1

第三个,aaa,前两位aa,重复字段a,(即前N-1位的重复字段长度+1),2

第四个,aaad,前三位aaa,重复的字段aa(不可将aaa视为和自身重合),3

第五个,aaade,前四位aaad,重复的字段空,0+1=1

第六个,aaadea,前五位aaade,重复的字段空,0+1=1

第七个,aaadeaa,前六位aaadea,重复的字段a,2

第八个,aaadeaaa,前七位aaadeaa,重复的字段aa,3

第九个,aaadeaaaad,前八位aaadeaaa,重复的字段aaa,4

往下就不一一写了,方法就是这样。重复字段:从前往后与从后往前的字段相同。

3.NextVal

核心:相同就写别人的NextVal,不同就写自己的Next。

1.第一位,都写0

2.第二位,Next=1,T=a=T,相同,

写T对应的NextVal,即NextVal=0

3.第三位,Next=2,T=T=a=T,相同,

写T对应的NextVal,即NextVal=0

注:这里一定要回溯到首位,即T1

4.第四位,Next=3,T=a≠d=T,不同,

写T对应的Next,即NextVal=3

5.第五位,Next=1,T=a≠e=T,不同,

写T对应的Next,即NextVal=1

下同,写一下第九个

6.第九位,Next=4,T=d=T,相同,

写T对应的NextVal,即NextVal=3

4.匹配过程

1.比较失败后,失败数值对应的NextVal为几,就表示下次比较从第几位开始。

2.前面的未比较的也写上,建议用括号括起来,这些是不用比较的。

3.每一行未在括号里面的,就是比较的次数。

4.有几行就是比较了几次,建议写在每行后面,用j=来表示。

结语:KMP属于必考题,但每年的题型固定,难度较小。

有一年考的是从第n位开始匹配,不是第一位,这是可能出现的坑。

做这种题,一是,保持熟练度;二是,认真仔细。

1
查看完整版本: 大连海事大学计算机考研KMP排序