第四章上机实践报告
2019-11-17 15:58 秃头小张 阅读(97) 评论(0) 编辑 收藏 举报-
实践题目
程序存储问题
-
问题描述
设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。
-
算法描述(说明你的贪心策略,并且参考会场安排问题,利用反证法证明贪心选择和最优子结构性质)
将输入的n个程序长度从小到大排列,要使得磁带上可以存储最多的程序,则应该先把短的程序先放进去,直到放进去的程序最大程度的填满磁带。
假设最优子结构中不包含最短的程序,那么磁带剩余的空间必定小于包含最短程序的,则可存放剩余的程序也会变少,故每次挑选最短的程序放入为最优子结构。
-
算法时间及空间复杂度分析(要有分析过程)
两个for循环时间复杂度为O(n),sort排序的时间复杂度为O(nlogn),故该算法时间复杂度为O(nlogn)。
空间复杂度为O(n)。
-
心得体会(对本次实践收获及疑惑进行总结
贪心算法很多时候是靠第一感觉判断问题的做法,但更多的时候应该做更周全的考虑。