首页 > 代码库 > 数据流的中位数
数据流的中位数
题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
思路:排序找中间
LinkedList<Integer> list=new LinkedList<Integer>(); public void Insert(Integer num) { if(list.size()==0||num<list.getFirst()){ list.addFirst(num); }else{ boolean falg=false; for(Integer e:list){ if(num<e){ int index=list.indexOf(e); list.add(index,num); falg=true; break; } } if(!falg) list.addLast(num); } } public Double GetMedian() { if(list.size()==0) return null; if(list.size()%2==0){ int i=list.size()/2; Double a = Double.valueOf(list.get(i - 1) + list.get(i)); return a/2; } list.get(0); Double b=Double.valueOf(list.get((list.size() + 1) / 2 - 1)); return Double.valueOf(list.get((list.size() + 1) / 2 - 1)); }
数据流的中位数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。