最小堆 数据流中的中位数

实现Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 思路: 采用一个最大堆maxHeap,一个最小堆minHeap 最大堆的数据都小于最小堆的数据,同时维护2个堆的数据数目count相等,或最小堆的数目比最大堆大1 这样中位数一定是2个堆的堆顶元素平均值,或者一定位于最小堆的堆顶 细节: 如果当前2个堆数目相等,那么向最小堆插入数据之前,需要先到最大堆过滤
相关文章
相关标签/搜索