第四次上机报告

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.心得体会

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

posted @ 2019-11-19 10:05  Dantalian  阅读(72)  评论(0编辑  收藏  举报