电子科技大学成都学院 计算机 系标准实验报告(实验)课程名称《语言与算法分析》电子科技大学成都学院计算机系制表电 子 科 技 大 学成都学院实验报告学生姓名:易兴 学 号:2940610408 指导教师:杨菊英实验地点:实验室 501 实验时间:2010年12月5日一、实验室名称:《语言与算法分析》二、 实验项目名称:在字符串T中査找与S相对应的子字符串三、 实验学时: 1四、 实验原理:又称BF算法,其主要思想:从S第一个字符开始与T 第一个字符比较 若相等,则逐个比较后续字符;不相等,从 S 第二个字符开始重新与 T 第一个字符进行比较 依次类推,若匹配成功,则返回T第一个字符在S中的位置,否则匹配失败五、 实验目的: 理解并掌握穷举法的设计思想;六、 实验内容:#include using namespace std;#include #include static int time1=0,time2=0;//BF 算法void BF(char *S,char *T){int i=0,j=0,s1,t1;s1=strlen(S);t1=strlen(T);while(i=0&&S[i]==T[j]){i--;j--;}if(j==-1){coutvv"匹配的起始下标为:"vvi+2vvendl; break;}else{time2++;i=i+dist(S[i],T);}}if(i>=s1)coutvv"匹配不成功"vvendl;}void main(){int *next=new int;//给 next 指针分配空间 char *S=new char;〃给S指针分配空间 char *T=new char;//给T指针分配空间 coutvv"请输入主串S:";cin>>S;coutvv"请输入模式串T:";cin>>T;coutvv"BF 算法: ";BF(S,T);coutvv"—共执行循环"vvtimelvv "次"vvendl; coutvv"BM 算法: ";BM(S,T);coutvv"—共执行循环"vvtime2vv"次"vvendl;七、实验器材(设备、元器件):VC++,计算机八、实验步骤:1,先理解题意,大概构思。
2, 在建立函数关系实现BF和BM算法3, 建立主函数调用算法函数4, 运行程序,计算结果九、实验数据及结果分析:十、实验结论:十一、总结及心得体会:十二、对本实验过程及方法、手段的改进建议:报告评分:指导教师签字。