-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPeakTimeSchedulingAlgorithm.java
More file actions
28 lines (27 loc) · 993 Bytes
/
PeakTimeSchedulingAlgorithm.java
File metadata and controls
28 lines (27 loc) · 993 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.List;
public class PeakTimeSchedulingAlgorithm implements SchedulingAlgorithm {
@Override
public void scheduleElevator(List<Elevator> elevators, List<Floor> floors) {
Elevator selectedElevator = null;
int minRequests = Integer.MAX_VALUE;
for (Elevator elevator : elevators) {
int requests = 0;
for (int request : elevator.getFloorRequests()) {
requests += request;
}
if (requests < minRequests) {
minRequests = requests;
selectedElevator = elevator;
}
}
if (selectedElevator != null) {
for (Floor floor : floors) {
if (floor.hasUpRequest() || floor.hasDownRequest()) {
selectedElevator.moveToFloor(floor.getFloorNumber());
floor.clearRequests();
break;
}
}
}
}
}