题目
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
解题思路
a. 最小堆放大数,最大堆放大数,那么两个堆的堆顶就是逼近中位数的数
b. count计数,当两堆数目一样时候,优先放在最小堆
c. 插入最大、最小堆的时候,先到对方的堆中换取合适的值
|
|
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
a. 最小堆放大数,最大堆放大数,那么两个堆的堆顶就是逼近中位数的数
b. count计数,当两堆数目一样时候,优先放在最小堆
c. 插入最大、最小堆的时候,先到对方的堆中换取合适的值
|
|