首页 > 解决方案 > 从超过 100 亿个数字的双打流中计算运行中位数

问题描述

我的应用程序正在接收总计数超过 100 亿的双打流。我需要从这些数字中计算出一些统计参数。我找到了计算平均值和众数的方法。但我有中位数的问题。为此目的,有最大堆/最小堆解决方案(在第一个答案中给出Running median)。但是通过这种方式,我必须在每个堆(或更​​多)中存储 50 亿个 double。数组、列表或字典无法做到这一点。我该怎么做?如果我的下一个元素与 maxHeap 的元素相同,我必须在所描述的解决方案中做什么?

标签: c#statisticsstreamingmedian

解决方案


推荐阅读