第四次上机报告

£可爱£侵袭症+ 提交于 2019-12-04 23:13:48

2.问题描述:设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。

3.算法描述:运用贪心算法,一直取最小的长度的程序。(先是运用快排函数(sort())进行排序,再从数组开始取最小的程序装入磁带中,直到磁带装不下为止,用数组下标进行计数)

反证法:设a = {a1,a2,...,an}不包含最小长度的程序且它为最优解,b为最小长度的程序。

长度 :a1 > b

所以 b = {b,a2,...,an}也是最优解

b != a 与原题设矛盾。

所以最优解包含最小长度的程序

4.算法时间与空间复杂度的分析

时间复杂度,运用了sort()快排时间复杂度为O(nlog n),装数据和输入数据的算法均为O(n),所以时间复杂度为O(nlog n);

空间复杂度,sort()的空间复杂度为O(1),变量设置的时候运用到一维数组空间复杂度为O(n),所以空间复杂度为O(n);

5.心得体会

题目很难以理解,需要和队友多多学习

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!