【发布时间】:2011-03-04 10:25:20
【问题描述】:
对于一个映射,其中键表示序列的数字,值表示该数字在序列中出现的频率,java 中的算法实现如何计算中位数?
例如:
1,1,2,2,2,2,3,3,3,4,5,6,6,6,7,7
在地图中:
Map<Int,Int> map = ...
map.put(1,2)
map.put(2,4)
map.put(3,3)
map.put(4,1)
map.put(5,1)
map.put(6,3)
map.put(7,2)
double median = calculateMedian(map);
print(median);
会导致:
> print(median);
3
>
所以我正在寻找的是calculateMedian 的java 实现。
【问题讨论】:
-
如果这是作业,请标记。
-
这是作业吗?如果是这样,请标记它。
-
@danben:对我来说这不是家庭作业,但我敢肯定对某人来说是
-
也就是说,你是老师? :)
-
@BalusC:不,我不是,我只是对可能的解决方案感兴趣。几乎对于我过去提出的每个问题,我在这里写问题时都已经有了解决方案。其他人如何解决它通常很有趣。顺便说一句,这是一个谷歌面试问题,尽管他们以不同的方式提问;)