- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中北大学软件学院算法实验报告(附截图)综述
中北大学软件学院
实验报告
专 业:_________________________
方 向:_________________________
课程名称:_________________________
班 级:_________________________
学 号:_________________________
姓 名:_________________________
辅导教师:_________________________
2016年3月制
成绩:
实验时间
2016年4月7日8时至10时
学时数
2
1.实验名称
实验一 串匹配程序设计
2.实验目的
(1) 熟练掌握串匹配的含义
(2) 掌握BF算法匹配的过程并编程实现
(3) 熟悉C++编译环境的基本操作
3.实验内容
给定两个字符串S和T,用BF算法,在主串S中查找字串T,输出结果,输出时要求有文字说明。请编写程序。
4.实验原理或流程图
基本思想:从主串S的第一个字符开始和模式T的第一个字符进行比较,若相等,则继续比较两者的后续字符;若不相等,则从主串S的第二个字符开始和模式T的第一个字符进行比较,重复上述过程,若T中的字符全部比较完毕,则说明本趟匹配成功;若最后一轮匹配的起始位置是n-m,则主串S中剩下的字符不足够匹配整个模式T,匹配失败。这个算法称为朴素的模式匹配算法,简称BF算法。
设串S长度为n,串T长度为m,在匹配成功的情况下,考虑最坏情况,即每趟不成功的匹配都发生在串T的最后一个字符。设匹配成功发生在si处,则在i-1趟不成功的匹配中共比较了(i-1)×m次,第i趟成功的匹配共比较了m次,所以总共比较了i×m次,因此平均比较次数是:
最坏情况是O(n×m)。
或者写书上P39页的伪代码描述。
5.实验过程或源代码
#include stdio.h
int BF(char S[], char T[]){
int index = 0; //主串从下标0开始第一趟匹配
int i = 0, j = 0; //设置比较的起始下标
while ((S[i] != \0) (T[j] != \0)){ //模式匹配没有结束
printf(-从主串的第%d个位置开始与模式串进行匹配:(只输出回溯信息)\n,i);
if (S[i] == T[j]){ //相同位置字符相同
i++; j++; //向后匹配
}
else { //相同位置字符不同
printf(由于主串下标i为%d的字符%c和模式串下标j为%d的字符%c失配,i,S[i],j,T[j]);
index++;
i = index; j = 0; //i和j分别回溯
printf(所以i和j分别回溯到%d,%d重新开始匹配\n,i,j);
}
}
if (T[j] == \0)
return index + 1; //返回本趟匹配的开始位置(不是下标)
else
return 0;
}
int main(){
char S[100],T[100];
printf(请输入主串S(不超过100个字符):);
scanf(%s,S);
printf(请输入子串T(不超过100个字符):);
scanf(%s,T);
int index=BF(S,T);
if(index == 0){
printf(模式匹配失败!);
}
else{
printf(模式匹配成功,子串%s在主串%s中首次匹配的位置是%d,T,S,index);
}
return 0;
}
6.实验结论及心得
通过本次实验我理解了使用蛮力法解决问题的特点,蛮力法的设计思想是直接基于问题本身的描述来设计算法,即不采用任何方法来精简计算过程、运算次数或者设法简化问题本身。所以蛮力法设计的算法虽然简单易懂,但是效率却往往不是很令人满意,比如串的模式匹配问题中采用BF算法效率低下的主要原因就在于BF算法一旦主串和子串匹配失败就会产生回溯,如果能利用已有的匹配结果来减少回溯就可以提高效率,如KMP算法。
成绩:
实验时间
2016年4月7日8
您可能关注的文档
- 圆柱与圆锥导学案分解.doc
- 中信银行技术服务合同(最终版)综述.doc
- 化工检修职业培训--教学大纲讲义.doc
- 化工见习报告讲义.docx
- 圆柱与圆锥的复习活动_1438分解.ppt
- 中公每日一练综述.doc
- 中公试讲资料分析综述.pptx
- 中信银行贵宾理财营销策划方桉综述.ppt
- 中内-呕吐综述.ppt
- 中内-中风综述.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)