這篇文章將為大家詳細(xì)講解有關(guān)java如何計(jì)算中位數(shù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東山,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220最近工作需要 要求把python的代碼寫成java版本,python中有一個(gè)np.median()求中位數(shù)的方法,java決定手寫一個(gè)
先說說什么是中位數(shù):
中位數(shù)就是中間的那個(gè)數(shù),
如果一個(gè)集合是奇數(shù)個(gè),那么中位數(shù)就是按大小排列后,最中間那個(gè)數(shù),
如果一個(gè)集合是偶數(shù)個(gè),那么中位數(shù)就是按大小排列后,最中間那2個(gè)數(shù)的平均數(shù)。
比如:
1,2,3,4,5 那中位數(shù)就是3
1,2,3,4,5,6 那中位數(shù)就是 (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轉(zhuǎn)成double類型,否則除以2會(huì)算錯(cuò) j = (total.get(size/2-1) + total.get(size/2) + 0.0)/2; } return j; }