首先,中位数问题可以归结为求 K=n/2的 第K小元素,并无明显区别. 第一种方法,用MaxHeap,大小为K的大顶堆,能够求出最小的K的元素,复杂度为O(n*logK). 当K较大时,复杂度会较高.其实只需要求出第K小,而不是全部前K的序列,可以有更优化的方式.(大顶堆的方法就不贴代码了) 第二种方法,采用partition能够进行一定程度的改进,开始我认为这种方式已经是O(n),实际上如果partition选取的pivot导致每次partition都偏向一边,那么最坏情况是O(n^2). 先…