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); } }