How would you implement streaming median?
Sigiloso
In python: Assuming a list of numbers Inefficient way: import numpy as np [np.median(np.array(l[:i])) for i in range(1,len(l)+1)] more efficient way: def find_median_stream(l): from heapq import heappush as push, heappop as pop lower = [] upper = [] for num in l: if len(upper) == 0 or upper[0] 1: if len(upper) > len(lower): temp = pop(upper) temp *= -1 push(lower, temp) else: temp = pop(lower) temp*=-1 push(upper, temp) if len(upper) > len(lower): print upper[0] elif len(upper) < len(lower): print (lower[0] * -1) else: print (upper[0] + (-1*lower[0]))/2 Had to multiply by -1 since there is no max heap