Here you can find the source of median(double[] values)
Parameter | Description |
---|---|
values | a parameter |
public static double median(double[] values)
//package com.java2s; /**//from ww w.ja va2s . com * Copyright 2000-2006 DFKI GmbH. * All Rights Reserved. Use is subject to license terms. * * Permission is hereby granted, free of charge, to use and distribute * this software and its documentation without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of this work, and to * permit persons to whom this work is furnished to do so, subject to * the following conditions: * * 1. The code must retain the above copyright notice, this list of * conditions and the following disclaimer. * 2. Any modifications must be clearly marked as such. * 3. Original authors' names are not deleted. * 4. The authors' names are not used to endorse or promote products * derived from this software without specific prior written * permission. * * DFKI GMBH AND THE CONTRIBUTORS TO THIS WORK DISCLAIM ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DFKI GMBH NOR THE * CONTRIBUTORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ import java.util.Arrays; public class Main { /** * Given an array of values, compute the median of these values. * @param values * @return */ public static double median(double[] values) { double[] a = (double[]) values.clone(); Arrays.sort(a); int len = a.length; if (len % 2 == 0) { return (a[len / 2 - 1] + a[len / 2]) / 2; } else { return a[(len - 1) / 2]; } } /** * Given an array of values, compute the median of these values. * @param values * @return */ public static float median(float[] values) { float[] a = (float[]) values.clone(); Arrays.sort(a); int len = a.length; if (len % 2 == 0) { return (a[len / 2 - 1] + a[len / 2]) / 2; } else { return a[(len - 1) / 2]; } } /** * Given an array of int values, compute the median of these values. * @param values * @return */ public static int median(int[] values) { int[] a = (int[]) values.clone(); Arrays.sort(a); int len = a.length; if (len % 2 == 0) { return (a[len / 2 - 1] + a[len / 2]) / 2; } else { return a[(len - 1) / 2]; } } /** * Given an array of long values, compute the median of these values. * @param values * @return */ public static long median(long[] values) { long[] a = (long[]) values.clone(); Arrays.sort(a); int len = a.length; if (len % 2 == 0) { return (a[len / 2 - 1] + a[len / 2]) / 2; } else { return a[(len - 1) / 2]; } } }