算法 第四章实践

Posted vkookie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法 第四章实践相关的知识,希望对你有一定的参考价值。

1.实践题目

程序存储问题

2.问题描述

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

3.算法描述

for(int i=0;i<n;i++)
cin>>a[i];//将程序的长度存放在数组之中

sort(a,a+n);//将数组中的元素排序 

int num=0;int x=0;//新设置一个变量X为已存放的程序长度之和
for(int i=0;i<n;i++)
{
x=x+a[i];//从小到大加上数组内的程序长度
if(x> l) break;//当x大于磁带长度时就停止
else num++;//否则可存储程序数加1

 

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

 时间复杂度:O(nlogn)

运用了sort()排序

空间复杂度:O(n)

运用了一维数组存储程序长度

5.心得体会(对本次实践收获及疑惑进行总结)

本次实践采用贪心算法,主要是要确定贪心策略,这样就会简便一些,在学习了贪心算法以后在实践时运用使我对此算法理解更加地深刻,且总体来说此题比较简单也容易上手所以没有遇到特别大的困难。

以上是关于算法 第四章实践的主要内容,如果未能解决你的问题,请参考以下文章

算法第四章上机实践报告

算法第四章实践报告

贪心算法?我全都要!——算法第四章上机实践报告

算法第四章上机实践报告

算法第四章上机实践报告

算法第四章上机实践报告