Java List Median calcMedian(List values, int start, int end)

Here you can find the source of calcMedian(List values, int start, int end)

Description

calc Median

License

Open Source License

Declaration

private static double calcMedian(List<Double> values, int start, int end) 

Method Source Code

//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;
    }
}

Related

  1. calculateMAD(List values, Number median)
  2. calculateMedian(List values)
  3. calculateMedian(List values, boolean copyAndSort)
  4. getGeneMedian(final List doubleArray)