2011年软考程序员算法实例:朴素字符串匹配算法

来源:软件水平考试    发布时间:2012-11-05    软件水平考试视频    评论

  作为最原始的字符串匹配算法,它的时间复杂度是O((n-m+1)m)

  #include /"stdio.h/"

  //计算字符串的长度

  int Length(char *s)

  {

  int count=0;

  while(*s++!=///0/)

  count++;

  return count;

  }

  //字符串匹配

  void NaiveStringMatching(char *t,char *p)

  {

  int n=Length(t);

  int m=Length(p);

  if(n

  {

  printf(/"Error:The P is longer than T!//n/");

  return;

  }

  bool find=true;

  printf(/"The string T is %s//n/",t);

  printf(/"The string P is %s//n/",p);

  for(int s=0;s<=n-m;s++)

  {

  find=true;

  for(int i=0;i

  {

  if(t[s+i]!=p[i])

  {

  find=false;

  break;

  }

  }

  if(find)

  printf(/"Pattern occurs with shift:%d//n/",s+1);

  }

  }

  int main()

  {

  char t[]=/"abcdebcg/";

  char p[]=/"bcdebcg/";

  NaiveStringMatching(t,p);

  return 0;

  }

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答