【设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数】
设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数。并估算时间复杂度。
解法:
使用大根堆和小根堆存储。 使用大根堆存储较小的一半数字,使用小根堆存储较大的一半数字。 插入数字时,在O(logn)时间内将该数字插入到对应的堆当中。当两边个数差大于1时,从多的一边取头上的数加入另一边,以维持平衡。 获取中数时,在O(1)时间内找到中数。