Victro轩

博客园 首页 新随笔 联系 订阅 管理

1.实践题目

程序存储题目

2.问题描述

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

3.算法描述

用一个数组存储n个正整数,它用来表示程序存放在磁带上的长度,先对给出来的数字有小到大排序,然后从小到大累加,如果没加完累加长度就大于总长度的话,就结束循环,记录当前累加了多少个数,如果已经加完,累加长度小于等于总长度的话,则输出n

4.算法时间及空间复杂度分析(要有分析过程)

由于排序使用sort()函数,其时间复杂度为O(n*lg(n)),然后对各个程序的长度进行遍历累加,时间复杂度为n  所以时间复杂度为O(n*lg(n)),空间复杂度为O(1)

5.心得体会

感觉这道题的贪心算法很快可以找出局部最优解,就是要寻找最小的储存长度,尽可能多的放进磁盘里。与搭档一起很快找出解决方法。

posted on 2018-12-02 12:55  Victro轩  阅读(120)  评论(0编辑  收藏  举报