Here you can find the source of calcMedian(List
private static double calcMedian(List<Double> values, int start, int end)
//package com.java2s; /**/*from w w w . j ava 2s . c om*/ * This file is part of SADL, a library for learning all sorts of (timed) automata and performing sequence-based anomaly detection. * Copyright (C) 2013-2016 the original author or authors. * * SADL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * * SADL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with SADL. If not, see <http://www.gnu.org/licenses/>. */ import java.util.List; public class Main { private static double calcMedian(List<Double> values, int start, int end) { double result = Double.NaN; final int count = end - start + 1; if (count > 0) { if (count % 2 == 1) { if (count > 1) { result = values.get(start + ((count - 1) / 2)).doubleValue(); } else { result = values.get(start).doubleValue(); } } else { final Number value1 = values.get(start + ((count / 2) - 1)); final Number value2 = values.get(start + (count / 2)); result = (value1.doubleValue() + value2.doubleValue()) / 2.0; } } return result; } }