易截截图软件、单文件、免安装、纯绿色、仅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设计模式之:Iterator链表模式

先来了解一下链表模式的原理:
首先写一个JavaBean,内容是要添加的元素和该元素的节点。
public class NodeBean implements Serializable
{
   
    private Object data; //元素本身
    private NodeBean next; //下一个节点
   
  &n ......

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访问控制符和动态绑定

首先从一道面试题目谈起:
package pkg1;
public class Jupiter
{
void method1(){
System.out.println("In Jupiter");
}
public void call(){
method1();
}
}
package pkg2;
import pkg1.Jupiter;
public class Minerva extends Jupiter{
public void method1(){
......

Java培训第一天后的感想

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

Java追加文件

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.OutputStreamWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.*;
/******************************
* 写文本
* java.lang.Object ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号