import java.util.ArrayList; import java.util.Collections; /** * 面试题64:数据流中的中位数 * 如何获得一个数据流中的中位数?若是从数据流中读出奇数个数值,那么中位数就是全部数值排序以后位于中间的数值。 * 若是从数据流中读出偶数个数值,那么中位数就是全部数值排序以后中间两个数的平均值。 */ public class _64_middle_num { } class Solution64{ ArrayList<Integer> arrayList=new ArrayList<Integer>(); public void Insert(Integer num) { arrayList.add(num); } public Double GetMedian() { Collections.sort(arrayList); int len=arrayList.size(); if(len%2==0){ return 1.0*(arrayList.get(len/2-1)+arrayList.get(len/2))/2; } return 1.0*arrayList.get(len/2); } }