java - 按时间和权重对记录进行排序

标签 java algorithm sorting

我有一组输入的日志记录,其中包含属性、记录、时间和权重。

我需要一个输出,其中前 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

最佳答案

如我所见,该列表按时间 排序。
将另一个属性添加到列表中,picked(例如)作为 boolean 值,并最初将所有属性设置为 false。 如果空间没有问题,请复制数据并根据 weight 对其进行排序。

现在,从 list1(按时间排序)中选择第 1 个 5,并设置它们的 picked 属性。为真。现在,开始从 list2 中挑选,并检查您正在挑选的记录,如果它的 picked 值为 false 或者不在 list1 中。 (如果它的 true,请不要选择这个)。当您从该列表中选择完 5 项后,从列表 1 中的第 6 项继续,同时检查列表 2 中的 picked 属性。要检查 picked 值,请使用 record_no 属性。

关于java - 按时间和权重对记录进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517387/

相关文章:

Java - string.split 与冲突的正则表达式

java - Mac OS X Snow Leopard 上的 Oracle

java - 将两行连接成一行(在 Java 中)

algorithm - 什么样的哈希算法用于生成 12 个字符长度的字母数字?

mysql - 按列对行进行排序,然后按另一列对排序后的行进行排序

php - Mysqli 表用 thead 排序?

Java 忽略证书验证

java - Java 中的有序 JSON 转换,读取 JSONObjects 的 JSONArray

python - 寻找函数的转折点

c# - 带字符串的选择排序