【发布时间】:2012-04-23 20:49:07
【问题描述】:
程序每秒接收大约 50,000 个号码。
在任何给定时刻,我都需要计算在最后一秒(关于给定时刻)到达的值(数字)的最小值、最大值和平均值。
有没有办法不使用数组或列表(缓冲区)来存储到达的数字并计算结果?
如果我需要使用缓冲区,实现此目的的有效方法是什么?
(请注意,缓冲区中的数字也必须不时有效地删除)
【问题讨论】:
-
你能保证号码按顺序到达吗?
-
您说“大约 50,000”会有所不同还是您不确定 #?
-
它可以变化,数据来自外部组件...
-
@ademing,数字是按顺序到达的,但它们不是有序的(如 n1
-
您需要一个运行平均值,还是提供最后一个完整 1 秒间隔的平均值就足够了?后者要简单得多。
标签: c# performance algorithm