Expand description

An implementation of the Moore-Hudgson algorithm within no_std rust.

The Moore-Hudgson algorithm is a scheduling algorithm that minimizes the amount of late jobs.

It provides a single function moore_hodgson, that performs the algorithm.

Examples

use moore_hodgson::moore_hodgson;

let mut jobs = [
    ("ApplyForJob",        6, 5), // Due after 6 time units, takes 5 time units
    ("FileTaxes",          7, 1), // Due after 7 time units, takes 1 time unit
    ("BuyPresentForMom",   4, 1), // Due after 4 time units, takes 1 time unit
    ("SolveUrgentProblem", 6, 4), // Due after 6 time units, takes 4 time units
    ("ApplyForLoan",       8, 3), // Due after 8 time units, takes 3 time units
];

let nr_of_on_time_jobs = moore_hodgson(&mut jobs);
 
assert_eq!(nr_of_on_time_jobs, 3);
// jobs = [
//    (BuyPresentForMom,   4, 1),
//    (ApplyForJob,        6, 5),
//    (FileTaxes,          7, 1),
//    (ApplyForLoan,       8, 3),
//    (SolveUrgentProblem, 6, 4),
// ]

License

Licensed under a MIT license.

Functions

Run the Moore-Hudgson’s Algorithm on the array with items of form (item, due_time, processing_time). Returns the amount of items that will be on time.