()
| 87 | |
| 88 | |
| 89 | def main(): |
| 90 | job = namedtuple("job", "job_id deadline profit") |
| 91 | jobs = [ |
| 92 | job(0, 0, 0), |
| 93 | job(1, 2, 46), |
| 94 | job(2, 4, 52), |
| 95 | job(3, 3, 30), |
| 96 | job(4, 3, 36), |
| 97 | job(5, 2, 56), |
| 98 | job(6, 1, 40), |
| 99 | ] |
| 100 | # midresult stores jobs in sorting order of deadline |
| 101 | midresult = [] |
| 102 | for i in range(len(jobs)): |
| 103 | current_job = [] |
| 104 | current_job.extend((jobs[i].deadline, jobs[i].profit, jobs[i].job_id)) |
| 105 | midresult.append(current_job) |
| 106 | midresult.sort(key=lambda k: (k[0], -k[1])) |
| 107 | (deadline, profit, jobs) = map(list, zip(*midresult)) |
| 108 | |
| 109 | scheduling_jobs = Scheduling(jobs) |
| 110 | scheduled_jobs = scheduling_jobs.schedule(len(jobs), deadline) |
| 111 | print(f"\n Jobs {scheduled_jobs}") |
| 112 | |
| 113 | finalprofit = [] |
| 114 | finaldl = [] |
| 115 | |
| 116 | for i, item in enumerate(scheduled_jobs): |
| 117 | jobsindex = jobs.index(item) |
| 118 | finalprofit.append(profit[jobsindex]) |
| 119 | finaldl.append(deadline[jobsindex]) |
| 120 | |
| 121 | print(f"\n Profit {finalprofit}") |
| 122 | print(f"\n Deadline {finaldl}") |
| 123 | |
| 124 | |
| 125 | if __name__ == "__main__": |
no test coverage detected