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

软工2101贺佳伊 2022-11-21 19:08:41

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

7-2 程序存储问题

设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。

贪心策略

因为题目的目的是放尽可能多的程序到磁带上,所以优先放短的程序可以节省空间。故需要先将n个程序进行升序排序,然后判断磁带的剩余长度是否大于当前的程序长度。如果大于,就将程序存储进去,如果小于,就结束程序。

反例

如果存在比贪心算法得到的最优解的更优解,那么会多一个程序在磁带上。已知当前未放入磁带的最短长度都比剩余空间要长,所以不存在更优解。故当前情况最优。

时间复杂度C(nlogn)排序时间

对贪心算法的理解

贪心算法通常是局部最优的解法,每次都会选择当前情况下的最优解。然而有时局部的最优解不等同于全局的最优解。贪心算法会先将数据按照一定的标准进行排序,然后进行遍历,当到达终止情况时结束遍历就可以得到最终解每做一次选择,就把原问题简化成规模更小的子问题。

 

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

434

社区成员

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

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