假设我有几个具有不同优先级的列表。 每个列表都包含具有开始时间和结束时间的对象。
列表1(高pirority): obj1(str = 0,end = 2) - > obj2(str = 100,end = 102) - > ...
列表2(优先级中): obj1(str = 0,end = 1) - > obj2(str = 20,end = 21) - > obj3(str = 40,end = 41) - > obj4(str = 60,end = 61) - > obj5(str = 80,end = 81) - > obj6(STR = 100,端= 101)
列表3(低优先级): obj1(str = 0,end = 2) - > obj2(str = 15,end = 17) - > obj3(str = 30,end = 32) - > obj4(str = 45,end = 47) - > obj5(str = 60,end = 62) - > obj6(str = 75,end = 77) - > obj7(str = 90,end = 92) - > obj8(str = 105,end = 107) - >
并且有一个调度程序根据优先级一次提取一个对象。 规则是: (1)一次在obj上,不允许重叠。 (2)如果obj重叠,将获取具有较高优先级的那个。
预期的提取顺序为: list1 obj1(0~2) - > list3 obj2(15~17) - > list2 obj2(20~21) - > list3 obj3(30~32) - > list2 obj3(40~41) - > ...
是否有任何快速算法生成如上所示的最终列表,而不是循环所有列表中的所有obj? 或者是否有任何简化此过程的结构?