这篇文章将为大家详细讲解有关java如何计算中位数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联主要从事成都网站制作、成都网站设计、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务东山,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220最近工作需要 要求把python的代码写成java版本,python中有一个np.median()求中位数的方法,java决定手写一个
先说说什么是中位数:
中位数就是中间的那个数,
如果一个集合是奇数个,那么中位数就是按大小排列后,最中间那个数,
如果一个集合是偶数个,那么中位数就是按大小排列后,最中间那2个数的平均数。
比如:
1,2,3,4,5 那中位数就是3
1,2,3,4,5,6 那中位数就是 (3+4)/2 = 3.5
知道逻辑后方法就很简单了 下面是代码
public static void main(String[] args) { Listtotal = new ArrayList (); total.add(4); total.add(2); total.add(3); total.add(1); total.add(5); total.add(6); double a = median(total); System.out.println(a); } private static double median(List total) { double j = 0; //集合排序 Collections.sort(total); int size = total.size(); if(size % 2 == 1){ j = total.get((size-1)/2); }else { //加0.0是为了把int转成double类型,否则除以2会算错 j = (total.get(size/2-1) + total.get(size/2) + 0.0)/2; } return j; }