算法设计与分析 - 磁带存储程序 - 贪心算法(java实现)
题目描述:
设有n个程序{1,2,...,n}要存放在长度为L的磁带上。程序i存放在磁带上的长度是li,1<=i<=n.
程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。在保证存储最多程序的前提下,
要求磁带的利用率最大。
编程任务:对于给定的n个程序存放在磁带上的长度,编程计算磁带上最多可以存储的程序数和占用磁带的长度。
提示:利用贪心策略:最短程序优先。求得最多可以存储的程序个数m后,再求最大利用率。问题转化为第5章中的装载问题,但m已知。
输入描述
第一行是2个正整数,分别表示文件个数n和磁带长度L。第二行中,有n个正整数,表示程序存放在磁带上的长度。
输出描述
第一行输出最多可以存储的程序数和占用磁带的长度;第二行输出存放在磁带上的每个程序的长度。
输入样例
9 50
2 3 13 8 80 20 21 22 23
输出样例
5 49
2 3 13 8 23
java代码如下:
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args){int []a = new int[1001];int n,c, max= 0;int num = 0;Scanner input = new Scanner(System.in);n = input.nextInt();c = input.nextInt();for(int i=1;i<=n;i++){a[i] = input.nextInt();//System.out.println(a[i]); }//输入数据,第一行是2个正整数分别是文件个数n和磁带长度L,接下来的i行中,有n个整数,表示程序存储所需的磁带长度//对输入的程序按长度进行排序for(int i =1;i <= n;i++) {for(int j = 1; j<= n-i;j++) {if(a[j] > a[j+1]) {int temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}for(int i = 1;i <= n;i ++){System.out.println(a[i]+ " ");c -= a[i ];if(c >= 0)num++;else break;}System.out.println(num);}}
参考文章:
https://blog.csdn.net/u010862301/article/details/40480657
https://blog.csdn.net/bensonrachel/article/details/78595809
算法设计与分析 - 磁带存储程序 - 贪心算法(java实现)相关推荐
- 算法设计与分析 实验二 贪心算法
实验2.<贪心算法实验> 一.实验目的 了解贪心算法思想 掌握贪心法典型问题,如背包问题.作业调度问题等. 二.实验内容 编写一个简单的程序,实现单源最短路径问题. 编写一段程序,实现找零 ...
- 算法设计与分析 实验三 贪心算法
一. 实验目的和要求 1.掌握贪心算法的基本思想. 2.学习利用贪心算法设计和实现算法的方法. 3.了解利用替换法证明贪心策略是否能获得全局最优解的过程. 4.熟练掌握贪心算法在两个典型图搜索中的应用 ...
- 计算机算法设计与分析考试题,《计算机算法设计与分析》习题及答案
<计算机算法设计与分析>习题及答案 一.选择题 1.二分搜索算法是利用( A )实现的算法. A.分治策略 B.动态规划法 C.贪心法 D.回溯法 2.下列不是动态规划算法基本步骤的是( ...
- 算法设计与分析——活动安排问题(Java)
[问题]设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源(如演讲会场),而在同一时间内只有一个活动能使用这一资源.每个活动 都有一个要求使用该资源的起始时间 和一个结束时间 ...
- 计算机算法设计与分析期末考试试卷,算法设计与分析期末考试卷及答案a
<算法设计与分析期末考试卷及答案a>由会员分享,可在线阅读,更多相关<算法设计与分析期末考试卷及答案a(15页珍藏版)>请在人人文库网上搜索. 1.一填空题(每空2分,共30分 ...
- 【算法设计与分析】14 分治算法的一般描述和分析方法
本文主要描述分治算法的一般描述和分析方法.衔接上一篇文章:[算法设计与分析]13 分治策略的设计思想 文章目录 1 分治算法的一般性描述 1.1 分支算法的时间分析 1.2 两类常见的递推方程与求解方 ...
- 算法设计与分析——淘汰赛冠军问题(Java)
[问题]假设有 个选手进行竞技淘汰赛,最后决出冠军的选手,请设计竞技淘汰比赛的过程. [想法]竞技淘汰比赛最自然的想法是将所有选手分成两部分,每部分决出胜者后,让这两个胜者进行比赛,再决出最后的冠军 ...
- 算法设计与分析 实验三 动态规划算法
实验3.<动态规划算法实验> 一.实验目的 掌握动态规划方法贪心算法思想 掌握最优子结构原理 了解动态规划一般问题 二.实验内容 编写一个简单的程序,解决0-1背包问题.设N=5,C=10 ...
- 算法设计与分析(1)------算法概述
什么是算法? 在数学和计算机科学之中,算法/算则法(Algorithm)为一个计算的具体步骤,常用于计算.数据处理和自动推理(WiKipedia) 算法不仅仅在计算机科学中,在数学中也有算法的概念 作 ...
最新文章
- 怎么用express搭建一个服务器
- (转载)IE 浏览器的创新
- hash table(开放寻址法-二次探查实现的哈希表)
- LintCode 373: Partition Array
- Spring MVC+Mybatis 多数据源配置
- android底层重构,【理论】【转】Android项目重构之路:实现篇
- 极酷WIFI深度剖析免费WIFI
- 简单的学生库管理系统
- gitee怎么看用户名_怎么优雅的写博客 Typora + picGo
- hihocoder-Week195-奖券兑换
- 北航计算机专业报录比,北京航空航天大学考研报录比数据查询
- R数据框操作 fourth day
- ZZNU-正约数之和(DP)
- Matlab画天球坐标图,知道方位角和高度角
- 自己搭建云存储(WIFI路由器上接硬盘)
- html svg标签中插入img image标签不显示的问题
- RTU厂家,RTU品牌.遥测终端机厂家,遥测终端机品牌,DTU厂家DTU品牌
- 极客日报:腾讯反舞弊通报近 70 人被辞退;库克遭陌生可疑女子威胁;英伟达回应放弃收购 ARM 传闻
- roc曲线spss怎么做_SPSS单因素ROC曲线及多因素联合诊断ROC曲线绘制(原创手把手) - 医学统计和生物统计讨论版 -丁香园论坛...
- 变电站蓄电池组全在线充放电测试应用案例