c# - 从超过 100 亿个数字的双打流中计算运行中位数
问题描述
我的应用程序正在接收总计数超过 100 亿的双打流。我需要从这些数字中计算出一些统计参数。我找到了计算平均值和众数的方法。但我有中位数的问题。为此目的,有最大堆/最小堆解决方案(在第一个答案中给出Running median)。但是通过这种方式,我必须在每个堆(或更多)中存储 50 亿个 double。数组、列表或字典无法做到这一点。我该怎么做?如果我的下一个元素与 maxHeap 的元素相同,我必须在所描述的解决方案中做什么?
解决方案
推荐阅读
- ios - 如何防止 App Store Connect 询问仅 iPad 应用程序的 iPhone 屏幕截图?
- google-analytics - 如何从 Google Analytics Data API (GA4) 获取 UA 指标数据
- amazon-waf - 限制对 route53 托管区域子域的访问
- apache-spark - “spark.python.worker.memory”和“spark.executor.pyspark.memory”有什么区别?
- reactjs - 在 Form.Control 中加载文本
- java - 嗨,我有包含列名作为键和列值作为值的 Map,我该如何通过 PreparedStatement 来做呢?
- php - preg-replace 的问题:函数替换整个字符串而不是仅替换其中的一部分
- python - 如何使用类别列和值列转换熊猫中的数据框
- php - 使用 wp_list_comments() 在 wordpress 中使用元键过滤评论
- python - 重力会影响 MPU6050 的信号吗?