易截截图软件、单文件、免安装、纯绿色、仅160KB

带有限期的作业排序算法 java实现

/*
*日期:2010-04-19 22:02
*开发者:heroyan
*联系方式:zndxysf@126.com
*功能:带有限期的作业排序,假设每个作业都可在单位时间内完成,完成后获得一定的效益,求效益的最大值和作业顺序
*/
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class JobSort{
private static int MAX = 100;
private Job[] jbs = new Job[MAX];
private boolean[] visited = new boolean[MAX];//标志此时间是否已经被安排作业
private int[] target = new int[MAX];//目标编号
private double maxfit = 0.0;//最大收益
private int n;//作业个数

public JobSort(){}

public static void main(String args[]){
JobSort sp = new JobSort();
sp.init();
sp.js();
sp.print();
}
//初始化
public void init(){
Scanner scan = new Scanner(System.in);
int p,q;
double w;

System.out.println("Input the job number:");
n = scan.nextInt();
System.out.println("Input the time and benifit:");
for(int i = 1; i <= n; ++i){
jbs[i] = new Job();
jbs[i].no = i;
jbs[i].tt = scan.nextInt();
jbs[i].fit = scan.nextDouble();
}
maxfit = 0.0;
Arrays.fill(visited,false);
sort();
}
//按效益从大到小排序
public void sort(){
for(int i = 1; i < n; ++i){
for(int j = i+1; j <= n; ++j ){
if(jbs[i].fit < jbs[j].fit){
Job tmp = jbs[i];
jbs[i] = jbs[j];
jbs[j] = tmp;
}
}
}
}
//算法主体
public void js(){
int cnt = 0;
for(int i = 1; i <= n; ++i ){
if(!visited[jbs[i].tt]){
visited[jbs[i].tt] = true;
target[cnt++] = jbs[i].no;
maxfit += jbs[i].fit;
}
}
target[cnt] = -1;
}
//打印结果
public void print(){
for(int i = 0; target[i] > 0; ++i){
System.out.println("NO."+target[i]+" job is choosed");
}
System.out.println("maximum fit is "+maxfit);
}
}
class Job
{
public int no;//序号
public int tt;//期限
public double fit;//效益
}


相关文档:

【java算法】买苹果

题目:有600个苹果,要求分装在10个盒子中。对于顾客要求的任意苹果数都可以通过此10个盒子进行组合得到。
分析:1、首先要设计10个盒子所装苹果的数目。由二进制与十进制的转换可知,2的倍数相加可以的到一切十进制数。所以如果想使用有限的数字组合得到一定范围内的所有数字必是以2的倍数进行设计的。所以,可知十个盒子 ......

java连接常见数据库的连接字符串

java连接常见数据库的连接字符串
1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar ;
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar ;
C ......

Java培训第一天后的感想

         在参加Java培训第一天后,自己很有感想,原因其实也很简单。本人专业是软件工程,现在已经大三了,为了自己以后更好的就业,参加了这个为期四个月的Java培训班,但是在这个人数为60上下的班中,只有5个人是计算机专业的(包括本人自己)。其余的学生是数理系的。
  ......

用Java写的计算器

                            用Java写的计算器
package com.wenbo.myprogrem.day15;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.Actio ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号