434
社区成员
发帖
与我相关
我的任务
分享一、”程序存储问题”
1)贪心策略
在本问题中, 我们可以先通过排序将程序长度从小到大进行排列。 之后根据结果将长度小的程序优先归入磁带直到磁带的长度小于零。
2)证明
若存在长度为10的磁带,存在一组程序长度分别为{2,5,9,1,4,3,6},根据贪心策略应选入{1,2,3,4}四个程序, 假如{1,2,3,4}并非最优解, 则删去任意一个程序, 得{2,3,4}, 此时磁带上有三个程序且无法写入更多。则认为该策略满足贪心选择性质。
3)时间复杂度分析
本问题需要对个数为n的数组进行一遍排序之后再进行遍历, 排序时间复杂度更高所以时间复杂度为O(nlog2);
二、我对贪心算法的理解
贪心算法不从整体最优上加以考虑,所做出的仅是在某种意义上的局部最优选择。使用贪心策略要注意局部最优与全局最优的关系,选择当前的局部最优并不一定能推导出问题的全局最优。贪心策略解题需要解决以下两个问题——是否贪心选择性质, 是否有最优子结构性质, 若满足则可以将所求问题简化为一个规模更小的子问题,通过每一步贪心选择,可得到问题的一个最优解。