如何維護一箇中位數

設計一個數據結構,包括兩個函數,插入數據和獲得中位數。

利用大根堆和小根堆,其中大根堆維護較小的一半數據,小根堆維護較大的一半數據。

然後根據相應的情況,對兩個堆做相應的堆化操作,以滿足兩個堆中元素數目一致。時間複雜度O(lgn)


extension:

設計一個堆棧,除了常見的堆棧操作,還有一個返回中位數的操作。

同樣利用大根堆和小根堆,來維護中位數。時間複雜度O(lgn)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章