資料流中的中位數

2021-10-24 16:23:55 字數 516 閱讀 5340

如何得到乙個資料流中的中位數?

如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。

如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。

樣例

輸入:1, 2, 3, 4

輸出:1,1.5,2,2.5

解釋:每當資料流讀入乙個資料,就進行一次判斷並輸出當前的中位數。

時間複雜度o(logn)

class

solution})

; priorityqueue

maxheap =

newpriorityqueue()

;public

void

insert

(integer num)

else

}public double getmedian()

else

}}

資料流中的中位數

資料流中的中位數 如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。解題思路 維護乙個大堆和乙個小堆,大堆表示序列前一半數,小堆表示序列後一半數,保持兩個堆的元素個...

資料流中的中位數

如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。class solution double getmedian else private vectordata c...

資料流中的中位數

如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。簡單題 找中位數 coding utf 8 class solution x def insert self,nu...