最小堆 數據流中的中位數

實現Insert()方法讀取數據流,使用GetMedian()方法獲取當前讀取數據的中位數。 思路: 採用一個最大堆maxHeap,一個最小堆minHeap 最大堆的數據都小於最小堆的數據,同時維護2個堆的數據數目count相等,或最小堆的數目比最大堆大1 這樣中位數一定是2個堆的堆頂元素平均值,或者一定位於最小堆的堆頂 細節: 如果當前2個堆數目相等,那麼向最小堆插入數據之前,需要先到最大堆過濾
相關文章
相關標籤/搜索