【发布时间】:2022-01-27 19:14:45
【问题描述】:
我有一个更大的数组或未排序的双精度列表,我想以最有效的方式计算最小值、最大值、平均值、中值和标准差。当然,我可以简单地使用 Linq 来逐个计算,但我认为可以更快。示例代码:
var list = new List(){1.0, 2.5, 0.11, 0.7, 8.2, 3.4, 1.0};
var (min, max, mean, median, std) = CalculateMetrics(list);
private (double, double, double, double, double) CalculateMetrics(List list) {
// TODO
}
那么最有效的方法是什么?使用库对我来说也很好。
-
当你说“更大”时,比如多大? 500? 5k? 5M? 5B?如果您估计了潜在的数组大小,则可以选择更好的算法。考虑到所有相关的开销,可能不需要对大小约为 1k 的原始数组进行大量优化。