logo

您所在位置网站首页 > 海量文档  > 高等教育 > 实验设计

中北大学软件学院算法实验(附截图)汇总.docx 49页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
中北大学软件学院实验报告专 业:_________________________方 向:_________________________课程名称:_________________________班 级:_________________________学 号:_________________________姓 名:_________________________辅导教师:_________________________2016年3月制成绩:实验时间2016年4月7日8时至10时学时数21.实验名称实验一串匹配程序设计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时至10时学时数21.实验名称实验二排序问题程序设计2.实验目的(1) 掌握选择排序和起泡排序的基本思想(2) 掌握两种排序方法的具体实现过程(3) 在掌握的基础上编程实现两种排序方法3.实验内容输入一个待排序的序列,分别用选择排序和起泡排序两种排序方法将其变换成有序的序列,输出结果,输出时要求有文字说明。请编写程序。4.实验原理或流程图书上P42页选择排序想法三点抄上去书上P43页

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

“原创力文档”前称为“文档投稿赚钱网”,本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。原创力文档是网络服务平台方,若您的权利被侵害,侵权客服QQ:3005833200 电话:19940600175 欢迎举报,上传者QQ群:784321556