61、数据流中的中位数

一、题目

如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。

二、解法

 1 import java.util.*;
 2 public class Solution {
 3     ArrayList<Integer> list = new ArrayList<Integer>();
 4     public void Insert(Integer num) {
 5         list.add(num);
 6         Collections.sort(list);
 7     }
 8 
 9     public Double GetMedian() {
10         int mid = list.size()/2;
11         if((list.size()&1) == 1)
12             return list.get(mid)/1.0;
13         else
14             return (list.get(mid-1) + list.get(mid))/2.0;
15     }
16 
17 
18 }

 

posted @ 2017-09-01 10:55  fankongkong  阅读(190)  评论(0编辑  收藏  举报