算法设计与分析第二章作业

brisksea 2022-09-21 18:11:23
  1. 请以伪代码描述最大字段和的分治算法
  2. 分析该算法的时间复杂度
  3. 结合本章的学习,你对分治法的体会和思考
...全文
887 1 打赏 收藏 举报
写回复
0人已提交
完成率0%
暂无数据
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

1、
int find(int a[],int left,int right)
{
if(left==right)
{
return a[left];
}
int mid=(left+right)/2;
if(mid==0)
{
return 0;
}
int maxNum=max(findMax(a,left.mid),findMax(a,mid+1,right));
int j=0,L=a[mid-1],R=a[mid];
for(int i=mid-1;i>=left;--i)
{
L=max(L,j+=a[i]);
}
j=0;
for(int i=mid;i<=right;i++)
{
R=max(R,j+=a[i]);
}
return max(maxNum,L+R);
}
2、
时间复杂度为O(log n).
3、
分治法的基本思想是将一个规模为你的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。

发帖
gdufscs

124

社区成员

广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
帖子事件
创建了帖子
2022-09-21 18:11
社区公告
暂无公告