当前位置: 首页 > 知识库问答 >
问题:

计算海量数据的中位数[重复]

周朗
2023-03-14

我有大量的数据(

另外,std::向量是否是合适的数据结构?或者另一种数据结构会提供更好的复杂性

注意:我不能使用std::set,因为如果使用std::multiset,也可能存在重复项。查找中值将增加复杂性,因为我将从开始到中间循环以获取其值。

共有1个答案

公西翊歌
2023-03-14

我会使用std::multiset,因为它可以处理重复项并自动维护排序顺序。我会一个接一个地插入数字,保持一个指向中位数的迭代器(根据新元素是大于还是小于中位数向前或向后)。

请注意,如果它太大而无法在内存中轻松保存,则可以将许多最高和最低元素打包到文件中;中位数不太可能移动那么远,如果移动了,你可以拆包重新打包。

 类似资料:
  • 我正在尝试在旁边使用值方法。 不幸的是,编译器说不兼容的类型。 如果我将s更改为s,它仍然不喜欢它。

  • 我正在学习浮点格式(IEEE)。在单精度浮点格式中,提到尾数有24位,因此它具有6 1/2十进制数字的精度(根据书中“理解机器”),以及7.22十进制数字的精度。 我不明白精度的小数位数是怎么算出来的。有人能告诉我吗?

  • 本文向大家介绍awk 根据表格数据计算列中的值的中位数,包括了awk 根据表格数据计算列中的值的中位数的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个;用作列定界符的文件。我们使用以下为GNU awk编写的程序在第二列中计算值的中位数。提供的输入是学生组的成绩列表: 该程序的输出为1。 请记住,它NR保存了要处理的行数,END因此在块中它保存了文件中的总行数。 awk的许多实现都没有对数组

  • 问题内容: 我正在尝试计算由文本字段接收的输入填充的数组的总数,均值和中位数。我设法算出了总数和均值,但我只是无法获得中位数。我认为在执行此操作之前需要对数组进行排序,但是我不确定如何执行此操作。这是问题吗,还是我没有找到另一个问题?这是我的代码: 问题答案: Java中的Arrays类具有静态的排序功能,您可以使用调用该功能。

  • 我试图计算由TextField接收的输入填充的数组的总数、平均值和中位数。我已经算出了总数和平均数,但中位数无法计算出来。我认为在我可以这样做之前需要对数组进行排序,但我不确定如何这样做。是这个问题,还是还有一个我没有找到的?下面是我的代码: