【发布时间】:2015-04-16 20:14:06
【问题描述】:
我有大量整数,其值只能增长(我在数东西)。
出于效率原因,我单独保留一个最大值,随时更新:
// when increasing the i'th count
coll[i] += 1;
// check whether also to update the max:
if(coll[i] > max){
max = coll[i];
}
什么是“遵循”集合的最小值值的有效算法?
高效我的意思是,尽可能少地迭代整个集合并保持较小的内存占用。 (后者确实不如前者重要)
我正在使用 Java:所以如果上述算法已经在 JRE 中,我欢迎提供参考。
【问题讨论】:
-
如果你的收藏只会增长——就像你记住
max一样,你可以记住min——还是我误解了你的问题? -
只检查最后一个元素是否最大,第一个元素是否最小?还是我理解错了?
-
你不知道哪些元素是最小的,所以当这些最小值中的一个被增加时,你不知道是否还有其他元素(不要触及最小值)或没有(增加最小值)
-
收集桶或多或少随机增加。想象一下放入直方图箱中的数据。
-
@Philipp 每个元素都可以随时增加?现在明白了。
标签: java algorithm collections min