• 算法第四章上机实践报告


    一、实践题目

    程序存储问题

    二、问题描述

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

    三.算法描述

    贪心选择性质:

    证明:

    设A是最优解,且A中最先放入磁带的是程序k。

    若k = 1,则最优解包含程序1,即A是一个以贪心选择开始的最优解。

    若k>1    最优解不包含程序1,令B=A–{k}∪{1},因为程序 1 的长度小于程序 k 的长度,且 A中的程序个数与B相同,故B也是一个最优解,而B包含程序1,故总存在以贪心选择开始的最优存储方案。

    最优子结构性质:

    证明:

    假设A‘ 不是P’ 的最优解,设B’ 是P‘ 的最优解,且 | B' | > | A' |, 则 B’  ∪ {1} 是 P的解,且| B' | + 1 > | A |, 这与A是最优解矛盾,故A‘ = A - {1}是 P’ = {2, 3, ...,n}的一个最优解。

    四、算法时间及空间复杂度分析

    由程序存储问题的贪心选择性质和最优子结构性质,容易证明算法的正确性,算法的主要计算量在于将程序依照长度从小到大排序,所以算法的时间复杂度为O(nlogn)。没有使用辅助空间,空间复杂度为O(1)。

    五、心得体会

    本次上机实验是为了巩固对贪心算法的掌握程度,用该算法解决问题时最重要的是贪心策略的确定,只要确定了贪心策略,每次根据贪心策略选择目前最优的解即可得到整体最优解。

     

  • 相关阅读:
    改变GMF应用程序画布的布局
    Eclipse 3.2下载最多的国家和地区
    让输出的Plugin文件名里包含当前时间
    把SWT包装成Plugin需要修改的地方
    在程序里隐藏但利用Resource Navigator
    GMF应用程序设置背景图片
    给GMF应用程序添加自定义Action
    Graphical Modeling Framework简介
    GMF常见问题
    EReference的containment和container属性
  • 原文地址:https://www.cnblogs.com/fengwanthousand/p/11877685.html
Copyright © 2020-2023  润新知