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

算法第四章上机实践报告

时间:2019-11-17 23:53:56      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:替换   利用   题目   计算   分析   复杂   策略   算法   重点   

1. 实践题目

程序存储问题

2. 问题描述

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

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

贪心策略:优先选择程序长度最小的单位,

反证法证明贪心选择:假设存在一个最优解不包含程序长度最小的程序,则将最小的程序与最优解其中任意程序替换,仍可得出一个新的最优解,所以最优解包含长度最小的程序

最优子结构性质:假设所有的程序为集合N,集合A,集合B,集合X都是集合N的子集,集合A为集合N-集合X的贪心算法选择,集合B为集合N-集合X的某种选择,若最优解为集合C = 集合B + 最优选择(集合X)

但存在集合C‘ = 集合A + 最优选择(集合X) 因为集合A的个数因为贪心算法>=集合B的个数,所以C<=C’ 所以C‘的集合才是最优解,所以具有最优子结构

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

只需要一次快排取从最小的开始遍历即可

O(nlogn)

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

通过证明更加理解了贪心算法,也掌握另一种新的算法,重点在于如何选择正确的贪心策略

算法第四章上机实践报告

标签:替换   利用   题目   计算   分析   复杂   策略   算法   重点   

原文地址:https://www.cnblogs.com/heibaipei123/p/11879016.html

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