算法第四章实践报告
-
实践题目:程序存储问题
-
问题描述:设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。
-
算法描述:题目要求计算给定长度的磁带最多可存储的程序个数,先对程序的长度从小到大排序,再采用贪心算法求解。
#include <iostream> #include <algorithm> using namespace std; void Loogest(int n,int length, int l[]) { sort(l, l+n); int number=0; int L=length; for(int i=0;i<n;i++) { if(l[i] > L) break; number++; L-=l[i]; } cout<<number; } int main() { int n,allLength; int length[100]; cin>>n>>allLength; for(int i=0;i<n;i++) { cin>>length[i]; } Loogest(n,allLength,length); return 0; }
-
算法时间及空间复杂度分析(要有分析过程)
时间复杂度:O(n),空间复杂度:O(n)
-
心得体会(对本次实践收获及疑惑进行总结)
理解贪心算法之后再去做这道题,就很容易了。
浙公网安备 33010602011771号