您将需要至少存储ceil(n / 2)点,因为前n / 2点中的任何一个都可能是中位数。仅存储点并找到中位数可能是最简单的。如果保存ceil(n /
2)点很有价值,则将前n / 2个点读入排序列表中(最好是二叉树),然后在添加新点时将低点或高点丢弃,并保持跟踪任一端抛出的点数。
编辑:
如果流的长度是未知的,那么正如斯蒂芬在评论中所观察到的那样,显然,我们别无选择,只能记住一切。如果可能有重复的项目,我们可以使用Dolphins的存储值和计数的思想来节省一些内存。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)