<分区>
我有大量数据(>10000000),类型为 int,每个新项目我都想计算中位数(所以我将有 >1000000 个中位数)。我应该维护一个排序列表并按顺序将项目插入此列表,然后每次计算中位数,还是应该每次插入然后对列表进行排序。
此外,std::vector
是否适合此数据结构?或者另一种数据结构会提供更好的复杂性
注意:我不能使用 std::set
因为也可能有重复如果使用 std::multiset
查找中位数会增加复杂性,因为我将从从开始到中间得到它的值(value)。