Job Sequencing Problem Java
- Get link
- X
- Other Apps
PROGRAM TO SOLVE JOB SEQUENCING PROBLEM
import java.util.*;class Job{ // Each job has a unique-id, // profit and deadline char id; int deadline, profit; // Constructors public Job() {} public Job(char id, int deadline, int profit) { this.id = id; this.deadline = deadline; this.profit = profit; } // Function to schedule the jobs take 2 // arguments arraylist and no of jobs to schedule void printJobScheduling(ArrayList<Job> arr, int t) { // Length of array int n = arr.size(); // Sort all jobs according to // decreasing order of profit Collections.sort(arr, (a, b) -> b.profit - a.profit); // To keep track of free time slots boolean result[] = new boolean[t]; // To store result (Sequence of jobs) char job[] = new char[t]; // Iterate through all given jobs for (int i = 0; i < n; i++) { // Find a free slot for this job // (Note that we start from the // last possible slot) for (int j = Math.min(t - 1, arr.get(i).deadline - 1); j >= 0; j--) { // Free slot found if (result[j] == false) { result[j] = true; job[j] = arr.get(i).id; break; } } } // Print the sequence for (char jb : job) { System.out.print(jb + " "); } System.out.println(); } // Driver code public static void main(String args[]) { ArrayList<Job> arr = new ArrayList<Job>(); arr.add(new Job('a', 2, 100)); arr.add(new Job('b', 1, 19)); arr.add(new Job('c', 2, 27)); arr.add(new Job('d', 1, 25)); arr.add(new Job('e', 3, 15)); // Function call System.out.println("Following is maximum " + "profit sequence of jobs"); Job job = new Job(); // Calling function job.printJobScheduling(arr, 3); }}
OUTPUT:
Following is maximum profit sequence of jobs c a e
- Get link
- X
- Other Apps
Comments
Post a Comment