我有一组输入的日志记录,其中包含属性,记录,时间和权重。
我需要一个输出,其中前5个记录应该基于时间,接下来的5个应该根据权重进行排序。不允许重复。
java中是否有数据结构或任何类型的算法来解决这类问题。
输入
Record Time Weightage
R1 11:40:52 1
R2 11:39:23 2
R3 11:39:21 2
R4 11:38:44 5
R5 11:37:00 3
R6 11:36:12 3
R7 11:35:12 1
R8 11:34:00 1
R9 11:33:04 5
R10 11:32:02 4
R11 11:31:44 3
R12 11:30:12 2
R13 11:29:02 5
R14 11:28:28 6
R15 11:27:18 4
R16 11:26:19 6
R17 11:25:12 7
R18 11:24:03 5
R19 11:23:03 4
R20 11:22:05 4
R21 11:21:06 6
R22 11:20:00 4
R23 11:19:00 9
输出
Record Time Weightage
R1 11:40:52 1
R2 11:39:23 2
R3 11:39:21 2
R4 11:38:44 5
R5 11:37:00 3
R23 11:19:00 9
R17 11:25:12 7
R14 11:28:28 6
R16 11:26:19 6
R21 11:21:06 6
R6 11:36:12 3
R7 11:35:12 1
R8 11:34:00 1
R9 11:33:04 5
R10 11:32:02 4
R13 11:29:02 5
R18 11:24:03 5
R15 11:27:18 4
R19 11:23:03 4
R20 11:22:05 4
R11 11:31:44 3
R12 11:30:12 2
R22 11:20:00 4
答案 0 :(得分:0)
如我所见,列表按time
排序。
将另一个属性添加到列表中,picked
(比如)作为布尔值并最初将all设置为false。
如果空间没有问题,请复制数据并根据weight
对其进行排序。
现在,从list1中选择1st 5(按时间排序)并设置他们的picked
attr。为真。现在,从list2开始挑选,并检查您正在挑选的记录,如果其picked
值在list1中为false。 (如果是true
,请不要选择此项)。当您从此列表中选择5时,从list1中的第6项继续,同时从list2中检索其picked
属性。要检查picked
值,请使用record_no
属性。