码迷,mamicode.com
首页 > 编程语言 > 详细

算法第四章上机实践报告

时间:2019-11-16 23:43:46      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:贪心算法   利用   空间   style   问题   结构性   题目   最优   心得   

算法第四章上机实践报告

1.实践题目

程序存储问题

 

2.问题描述

n个程序都有长度,一个磁带长度为L,要求装入最多的程序。

 

3.算法描述(说明你的贪心策略,并且参考会场安排问题,利用反证法证明贪心选择和最优子结构性质)

(1) 贪心策略:依次把长度最小的程序装入磁带,直到不能装入为止,装入数即为能装入磁带的最大程序数。

(2) 反证法证明:如果磁带能装入一个程序,那么长度最小的程序一定能装进磁带,因为如果长度最小的程序不能装入磁带,那么更大的程序必不能装入磁带,这就导致磁带不能装入程序,这与假设矛盾。这就证明如果磁带能装入至少一个程序,长度最短的程序是一定能装入磁带的,这证明最优子结构一定包含最短程序。把最小的程序装入磁带后,磁带剩余空间最长,就有可能装入更多的程序。因为如果装入的程序不是最短程序,那么磁带剩余空间一定会小于磁带装入最短程序后的剩余空间,也不可能比装入最小程序后能装下的程序数量更多。这就证明贪心选择是正确的。

 

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

两个基本步骤排序和装入过程,排序时间复杂度是O(nlogn),装入过程是O(n),所以综合是O(nlogN);

全程就用了一个大小为n的一维数组,所以空间复杂度是O(n)。

 

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

贪心选择不依赖将来的选择,只在当前做最优选择,贪心算法不一定能得到最优解,但在许多特定问题上能求得最优解,即使不能求得最优解,也能得到最优解的近似解。

做贪心选择之前可以最好能证明一下贪心策略是正确的。

 

算法第四章上机实践报告

标签:贪心算法   利用   空间   style   问题   结构性   题目   最优   心得   

原文地址:https://www.cnblogs.com/haowen233/p/11874255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!