本文索引目录:

一、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