1.实践题目
程序存储问题
2.问题描述
设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。
3.算法描述
4.算法时间及空间复杂度分析(要有分析过程)
时间复杂度为:O(nlogn)
使用了sort()排序
空间复杂度:O(n)
运用了一维数组存储程序长度
5.心得体会(对本次实践收获及疑惑进行总结)
本题使用了贪心算法,一开始我用了加法来做,每存储一个程序,就在总容量上加上该程序的大小,但是却有一个问题,不知道总容量能否容纳下一个程序。后来改进为减法,每存储一个程序,就减去该程序的大小,解决了问题。