如何在列表

时间:2018-01-04 04:20:05

标签: c performance

假设我有几个具有不同优先级的列表。 每个列表都包含具有开始时间和结束时间的对象。

列表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? 或者是否有任何简化此过程的结构?

0 个答案:

没有答案