class Activity: def __init__(self, ActivityIDList, StartTimeList, FinnalTimeList, n): self.Length = n self.ActivityList = [] for i in range(self.Length): self.ActivityList.append( self.ActivityEntity(ActivityIDList[i], StartTimeList[i], FinnalTimeList[i])) Comparetor = lambda Object1, Object2: True if Object1.FinnalTime > Object2.FinnalTime else False self.ActivityHeap = Heap(self.ActivityList, Comparetor, -float('inf')) def GreedyActivitySelectOR(self): self.ActivityHeap.HEAPSORT() ActivityMaxSubSet = [] ActivityMaxSubSet.append(self.ActivityList[0].ActivityID) k = 0 for m in range(1, self.Length): if self.ActivityList[m].StartTime >= self.ActivityList[ k].FinnalTime: ActivityMaxSubSet.append(self.ActivityList[m].ActivityID) k = m return ActivityMaxSubSet class ActivityEntity: def __init__(self, ActivityID, StartTime, FinnalTime): self.ActivityID = ActivityID self.StartTime = StartTime self.FinnalTime = FinnalTime