- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序报告
算法思想:
为了方便叙述首先列出书上的算法
(一) (二)
(三) (四)
图(一)和(二)列出的程序是为了求出最大公共子序列LCS的长度,图三列出的程序是为了构造一个LCS。
求最大公共子序列所需的运行时间是O(m*n),为了构造一个LCS所需的运行时间是O(m+n)。
一、
然而如果仅要求出一个LCS的长度,而不需要构造一个LCS的元素,则只需要c的两行:正在被计算的一行和前面一行,也就是说完全可以用2*min(m,n)项以及O(1)的额外空间来计算一个LCS的长度。
此时首先要比较出m梦芭莎优惠券,n的大小,利用他们而这种较小的作为存储空间的行,在本次程序中构造了两个数组vectorlong Common1,Common;利用Common来存储正要计算的i行和利用Common1来存储需要用到的i-1行,计算结束后,便将本行计算结果Common中的值赋给上一行Common1,此时Common1中存储的便是i行中的计算结果,然后Common便可以继续利用Common1中存储的值,来急需计算i+1行,以下程序列出了计算过程(此段代码中已提前计算出Wen2_lengthWen1_length):
for(long i=0;iWen1_length;i++)
{
for(long j=0;jWen2_length;j++)
{
if (Wen1[i]==Wen2[j])
{
Common[j+1]=Common1[j]+1;
}
else if(Common[j]Common1[j+1])
{
Common[j+1]=Common[j];
}
else
{
Common[j+1]=Common1[j+1];
}
}
for(long j=0;j=Wen2_length;j++)
{
Common1[j]=Common[j];
}
}
二、
然而,实际上,需要的辅助空间还可以更小(仅略多于表c一行的空间),为min(m,n)项以及O(1)的额外空间。
这是因为在实际的计算i行第j个值的过程中,仅用到了i-1行中第j和j-1个值,所以只要用两个变量及时给出i-1行中第j和j-1个的值即可完成计算,这样便可以进一步缩小所需额外辅助空间,在本次程序中构造了一个数组vectorlong Common;两个变量long K1=0,K2=0;,利用Common来存储正要计算的i行值,利用K1和K2来提供所需的i-1行值的内容,以下代码给出了具体计算过程:
for(long i=0;iWen1_length;i++)
{
for(long j=0;jWen2_length;j++)
{
if(j==0)
{}
else
{
K1=K2;
K2=Common[j+1];
}
if (Wen1[i]==Wen2[j])
{
Common[j+1]=K1+1;
}
else if(Common[j]K2)
{
Common[j 1]=Common[j];
}
else
{
Common[j+1]=K2;
}
}
K1=Common[0];
K2=Common[1];
}
其中
if(j==0)
{}
else
{
K1=K2;
K2=Common[j+1];
}
是为了防止在一行开始时K1,被附成Common中的第二个值。以后利用else中的内容即可及时为Common中值的计算提供所需的值。
三、
本次共写了三个程序,第一个是利用两个数组来存储值,第二个是利用一行数组来存储计算的值,第三个是在第二个的基础上将计算过程单独编织成了一个函数(因为曾记得有书上说调用函数会占用更长的时间,不过本次程序只涉及一次调用过称想来应该差别不大,不过还是想把它写一下),这样便于分别测试其性能。
本次比较意外的发现是,如果用release的方式生成 *.exe 运行速度将会很快,大概只需几秒钟便可完成!
您可能关注的文档
- 宝宝吃蔬菜全攻略(宝宝宝典).docx
- 宝宝吃辅食从米糊开始片状更佳.doc
- 宝宝各种果汁的做法.doc
- 宝宝喂养注意事项.doc
- 宝宝妈妈们转起来,很有用哦.doc
- 宝宝学习10种才艺的最佳年龄,.doc
- 宝宝斗场最全攻略.doc
- 宝宝断奶父母必看.doc
- 宝宝早教精选古诗1.doc
- 宝宝正确吃盐学问大.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
最近下载
- 空调主机吊装方案.docx
- 基层儿科医务人员服务能力提升学习班答案-2024华医网继续教育答案.docx VIP
- 部编 人教版小学二年级上册语文教学课件 5.课文 14.我要的是葫芦 .pptx VIP
- 让“工具包”理念和方法落地.pdf VIP
- 国家开放大学《可编程控制器应用实训》形考任务2(实训二)参考答案.docx
- 4.2 实现中华民族伟大复兴的中国梦 课件(18张PPT)-2023-2024学年高中政治统编版必修一中国特色社会主义.pptx VIP
- 费森尤斯CRRT操作流程.doc VIP
- 五年级上册英语期中试卷人教精通版.pdf VIP
- 第17课昆明的雨(课件)(共27张PPT).pptx VIP
- 小学信息技术(信息科技)第六册泰山版(2018)合集.docx
文档评论(0)