『嗨威说』算法设计与分析 - PTA 程序存储问题 / 删数问题 / 最优合并问题(第四章上机实践报告)
本文索引目录:
一、PTA实验报告题1 : 程序存储问题
1.1 实践题目
1.2 问题描述
1.3 算法描述
1.4 算法时间及空间复杂度分析
二、PTA实验报告题2 : 删数问题
2.1 实践题目
2.2 问题描述
2.3 算法描述
2.4 算法时间及空间复杂度分析
三、PTA实验报告题3 : 最优合并问题
3.1 实践题目
3.2 问题描述
3.3 算法描述
3.4 算法时间及空间复杂度分析
四、实验心得体会(实践收获及疑惑)
一、PTA实验报告题1 : 程序存储问题
1.1 实践题目:
1.2 问题描述:
题意是,题干给定磁盘总容量和各个文件的占用空间,询问该磁盘最多能装几个文件。
1.3 算法描述:
签到题,只需要将各个文件从小到大排序,并拿一个变量存储已占用的容量总和,进行对比即可得到结果。
#include<bits/stdc++.h> #include<algorithm>using namespace std; #define MAXLENGTH 1000int interger[MAXLENGTH]; int main() { int num,length; int sum = 0; int counter = 0; int m = 0; cin>>num>>length; for(int i=0;i<num;i++){ cin>>interger[i]; } sort(interger,interger+num); while(true){ if(sum+interger[m]>length||counter==num) break; sum+=interger[m]; counter++; m++; } cout<<counter<<endl; return 0; }
1.4 算法时间及空间复杂度分析:
整体算法上看,输入需要O(n)的时间进行输入,最快用O(nlogn)的时间复杂度进行排序,使用O(n)的时间进行结果叠加,总时间复杂度为O(nlogn),时间复杂度花费在排序上。
空间上,只需要一个临时变量存储当前占用容量总和即可。
二、PTA实验报告题2 : 删数问题
2.1 实践题目:
2.2 问题描述:
第二题题意是指,在给定的数字串以及可删数个数的条件下,删数指定k个数,得到的数是最小的。
2.3 算法描述:
首先,分析题目,删数问题,可以用一个比较方便的函数,S