算法題(二十三):利用堆解決流數據的中位數問題

題目描述 如何得到一個數據流中的中位數?如果從數據流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從數據流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。我們使用Insert()方法讀取數據流,使用GetMedian()方法獲取當前讀取數據的中位數。 分析 利用一個大頂堆和小頂堆來解決問題。當輸入數據的總量爲奇數時,數據先放入小頂堆,再從小頂堆拿出堆頂元素
相關文章
相關標籤/搜索