【发布时间】:2016-09-07 08:31:45
【问题描述】:
我有两个包含整数的不同列表,我需要不断地找到这两个列表之间的两个最小值;我应该注意,我不想将这两个列表合并在一起,因为它们是不同的类型。
我想知道我的方法是好是坏。如果不好,请告诉我如何提高效率。
始终让两个列表按降序排序,因此分钟将位于底部
从 list1 中找出两个分钟,并将其与 list2 中的两个分钟进行比较,然后从这四个值中找出两个分钟
从关联列表中删除两分钟,将它们的值组合在一起(必需)并将其添加到 list2
我实际上是在执行 Huffman 代码的一部分,我想在其中得到一个按降序排列的字符频率列表。
【问题讨论】:
-
不断地是什么意思?列表是否会随着时间而变化?
-
为什么不在更新列表之前进行比较?
-
方法似乎没问题...你试过了吗?您是否遇到任何性能问题?
-
我还没有完全实现这个,在我继续之前想问一下。我想要不断地对列表进行排序的原因是,我可以始终准确地知道两个列表的分钟在哪里。
-
最小堆对于您的列表可能是一个不错的选择
标签: java list min huffman-code