The recursive was homework (Which has been done for a while), but the iterative is for my own fun (Which is what I'm trying to solve now).
The jobs can be ordered, or seperated, or whatever if desired. I order them on end time, so I can check for collision in a constant amount of time (Look at last job, check that its end time is before the start time of the job we're attempting to schedule). I've batted around ideas of organizing jobs into "bins" based on who intersects with who, or what potential computers they can be on, etc.... But, I haven't been able to make anything out of this approaches.