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

软工2103李绵铃 2022-11-21 22:52:57

【题目】

输入样例:

在这里给出一组输入。例如:

6 50 
2 3 13 8 80 20

输出样例:

在这里给出相应的输出。例如:

5

 

1.请说明作业三”程序存储问题“的贪心策略,并用反证法证明满足贪心选择性质,并给出时间复杂度分析

     为了使磁带上存储的程序数尽可能多,将输入数据从小到大依次相加,直到数据长度大于磁带长度时,结束循环,输出所加的数据个数。

     所以先排序,用内置函数sort()实现,使得数组变为一个非递减序列,从左向右依次选取元素直至磁带已经无法再放下任何一个程序。

 

反证法:

排序后:2 3 8 13 20 80

假设用以上方法不是最佳答案。

假设我们先选取第1个,之后我们不选取剩余程序段中最小的,我们选择l3放入磁带中,再从l4,l5……ln中选择下一个放入的程序段,但由于这是个非递减序列,所以我们取到了l5就结束了,这样子结果输出为4

显然原答案所得到的程序数量是5,大于我们这样选取得到的数量4,因此不可能在有别于我们猜想的方法中得到更优解,假想得证。
 

2.你对贪心算法的理解

   贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法

   贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果

...全文
25 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

434

社区成员

发帖
与我相关
我的任务
社区描述
广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧