Python:
class MedianFinder: def __init__(self): """ initialize your data structure here. """ self.stack=[] def addNum(self, num: int) -> None: self.stack.append(num) def quick_sort(testlist,start,end): if start<end: i,j=start,end base=testlist[i] while i<j: while i<j and testlist[j]>=base: j-=1 testlist[i],testlist[j]=testlist[j],testlist[i] while i<j and testlist[i]<=base: i+=1 testlist[i],testlist[j]=testlist[j],testlist[i] testlist[i]=base quick_sort(testlist,start,i-1) quick_sort(testlist,i+1,end) quick_sort(self.stack,0,len(self.stack)-1) def findMedian(self) -> float: if not self.stack: return None elif len(self.stack)%2==0: index=len(self.stack)//2 return (self.stack[index]+self.stack[index-1])/2.0 elif len(self.stack)%2!=0: index=len(self.stack)//2 return self.stack[index]