- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法分析习题答案第五章
1.最大子段和问题:给定整数序列 ,求该序列形如的子段和的最大值:
已知一个简单算法如下:
int Maxsum(int n,int a,int best i,int bestj){
int sum = 0;
for(int i=1;i=n;i++){
int suma = 0;
for(int j=i;j=n;j++){
suma + = a[j];
if(suma sum){
sum = suma;
besti = i;
bestj = j;
}
}
}
return sum;
}试分析该算法的时间复杂性。
试用分治算法解最大子段和问题,并分析算法的时间复杂性。
试说明最大子段和问题具有最优子结构性质,并设计一个动态规划算法解最大子段和问题。分析算法的时间复杂度。
(提示:令)
解:1)分析按照第一章,列出步数统计表,计算可得
2)分治算法:将所给的序列a[1:n]分为两段a [1:n/2]、a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有三种可能:
①a[1:n]的最大子段和与a[1:n/2]的最大子段和相同;
②a[1:n]的最大子段和与a[n/2+1:n]的最大子段和相同;
③a[1:n]的最大子段和为两部分的字段和组成,即;
intMaxSubSum ( int *a, int left , int right){
int sum =0;
if( left==right)
sum = a[left] 0? a[ left]:0 ;
else
{int center = ( left + right) /2;
int leftsum =MaxSubSum ( a, left , center) ;
int rightsum =MaxSubSum ( a, center +1, right) ;
int s_1 =0;
int left_sum =0;
for ( int i = center ; i = left; i--){
left_sum + = a [ i ];
if( left_sum s1)
s1 = left_sum;
}
int s2 =0;
int right_sum =0;
for ( int i = center +1; i = right ; i++){
right_sum + = a[ i];
if( right_sum s2)
s2 = right_sum;
}
sum = s1 + s2;
if ( sum leftsum)
sum = leftsum;
if ( sum rightsum)
sum = rightsum;
}
return sum;
}
int MaxSum2 (int n){
int a;
returnMaxSubSum ( a, 1, n) ;
} 该算法所需的计算时间T(n)满足典型的分治算法递归分式
T(n)=2T(n/2)+O(n),分治算法的时间复杂度为O(nlogn)
3)设,则最大子段和为
最大子段和实际就是.
要说明最大子段和具有最优子结构性质,只要找到其前后步骤的迭代关系即可。
若, ;
若,。
因此,计算的动态规划的公式为:
intMaxSum (int* a,int n )
{
int sum = 0, b = 0,j=0;
for( int i=1;i=n;i++)
{ if( b 0)
b = b + a [i];
else
b = a [i];
end{if}
if( b sum)
sum = b;
j=i;
end{if}
}
return sum;
}
自行推导,答案:时间复杂度为O(n)。
动态规划算法的时间复杂度为O(n)(双机调度问题)用两台处理机A和B处理个作业。设第个作业交给机器A处理时所需要的时间是,若由机器B来处理,则所需要的时间是。现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。设计一个动态规划算法,使得这两台机器处理完这个作业的时间最短(从任何一台机器开工到最后一台机器停工的总的时间)。以下面的例子说明你的算法:
解:(思路一)删除
(思路二)在完成k个作业,设机器A了x时间,机器B时间是
您可能关注的文档
- 澄江五中思想品德八年级上册期植慰夹考试试卷.doc
- 澳门大学入学试数学b卷.doc
- 炼字高考年历年经典题汇编.doc
- 灿烂在六月中考语文模拟试卷.doc
- 烘焙食品丙级学科测验试题题库.doc
- 烟台市学年度高一语文期末自主测试试题a卷.doc
- 热力发电厂复习题部分答案.doc
- 热力学定律习题思考题.doc
- 烟气脱硫技术的分析及应用正文.doc
- 焊接检验员考试试题.doc
- 2024年江西省寻乌县九上数学开学复习检测模拟试题【含答案】.doc
- 2024年江西省省宜春市袁州区数学九上开学学业水平测试模拟试题【含答案】.doc
- 《GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语》.pdf
- 中国国家标准 GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语.pdf
- GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- 《GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构》.pdf
- 中国国家标准 GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 中国国家标准 GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 《GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南》.pdf
最近下载
- 新动物防疫管理制度.doc
- 电工培训课件PPT(共-95张).ppt
- 第1课 社会主义在中国的确立与探索【中职专用】-【名师课堂】高一思想政治《中国特色社会主义》备课精品课件(高教版2023·基础模块).pptx
- 质量控制实验室GMP指南1300问完整版.pdf VIP
- 做情绪的主人 一 认识情绪 课件.ppt
- 医学影像学-消化系统的影像学诊断.ppt
- 旅游界app项目创业计划书.pptx VIP
- 第1课 铰链四杆机构的组成及分类公开课教案教学设计课件资料.pptx VIP
- 提高护士输液时PDA扫描率品管圈护理课件.pptx
- 地球与地球仪课件 2024-2025学年人教版地理七年级上册.pptx VIP
文档评论(0)