美文网首页
数算第四章书面作业

数算第四章书面作业

作者: 细雨沉沙 | 来源:发表于2018-10-21 21:49 被阅读0次

4.1

string A,B;                 //采用类似于kmp算法中求next数组的情况,只不过这次next数组保存的是最长前缀和后缀的值 
int next[B.length()+1];
if(B[0]==A[0])
next[0]=1;//先初始化第一个值如果相同就l=1,否则l=0 
else
next[0]=0;
int k=next[0]; 
int m=B.length();
for(int i=1;i<m;i++)
{
    if(B[i]=A[k])//如果相等l值加1 
    next[i]=next[i-1]+1;
    else//不相等就移位比较 
    {
        while(k>0&&B[i]!=A[k])
        {
            k=next[k];
        }
        k++;
        next[i]=k;
    }
}
int result=next[B.length()-1];//最终结果就为next数组最后一个值 

算法的复杂度为O(n)

4.2

非优化算法:
当p[k]=p[j]时,最长前缀和最长后缀都加一,next[i]=k+1正确;
若p[k]!=p[j],此时将p作为目标,第k个失配,便要将串向右移,让p[next[k]]来跟p[i]匹配,便是递归过程,直到二者相等或者k等于零
优化算法:
在非优化算法的基础上,若p[i]==p[k],在p[i]跟T[j]失配时,因为按照非优化算法,p需要右移使p[k]跟T[j]相匹配,但是由于p[i]等于p[k]所以p[k]必定失配,所以需要再右移使得p[next[k]]来配,故next[i]=next[k]合理

相关文章

  • 数算第四章书面作业

    4.1 算法的复杂度为O(n) 4.2 非优化算法:当p[k]=p[j]时,最长前缀和最长后缀都加一,next[i...

  • 数算第五章书面作业

    5.1 (1)由于内部节点度都为2,故内部节点数为n-1,总数为2n-1;(2)我们可以设根节点值为一,每个子节点...

  • 数算一至二章书面作业

    1.1 n=15 1.2 证明:首先以θ定义可知其有自反性即 f(n)=θ(g(n)) => θ(f(n))=g(...

  • 数算第三章书面作业

    3.1 top(): 时间复杂度为O(n)pop(): 时间复杂度为O(n)push(): 时间复杂度为O(1);...

  • 2021.9.30

    “严控书面作业总量” 全面压减作业总量和时长,确保小学一二年级不布置书面家庭作业,其他年级每天书面作业完成时间平均...

  • 书面作业一

    花了半天的时间看完了老师推荐的《非暴力沟通》,在其中看到了许多我和龚老师第一次通话时,老师提到的“倾听”“理解”“...

  • 那一刻,孩子写作业写到崩溃而泪奔

    2019年10月25日,周五,放学后,露露要完成的家庭作业有:当日的语数英书面作业、音频、视频提交,还有周六要交的...

  • 亲子日记第六十七篇 口语作业也是作业

    老师布置作业一般以书面作业为主,有时也布置口语作业。闺女对书面作业还是很重视的,认真对待,对于那些口语作业...

  • 数算

    2018新年伊始,求神指教我们怎样数算自己的年日: 假如一个人能活100年的话,每年365天,活36500天x24...

  • 数算

    只有一时 没有之间 不用数算 自有天地,恩情浩存,数算不尽。 十一月末 秋实静默 祝福满满 数算果实,荣归爱主,奇...

网友评论

      本文标题:数算第四章书面作业

      本文链接:https://www.haomeiwen.com/subject/mxqbzftx.html