Esempio n. 1
0
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