The Algorithms logo
The Algorithms
AboutDonate

Calculate Median

O
/**
 * @function calculateMedian
 * @description This function will find the median value of an array of numbers.
 * @param {number[]} numbers Sorted array of numeric values.
 * @return {number} The median of input numbers.
 * @see https://en.wikipedia.org/wiki/Median
 * @example calculateMedian([1, 2, 4, 5, 8]) = 4
 * @example calculateMedian([1, 2, 4, 5]) = 3
 */

export const calculateMedian = (numbers: number[]): number => {
    if (numbers.length < 1) {
        throw new TypeError("Input array must contain at least one number.");
    }

    const totalNumbers = numbers.length;

    if (totalNumbers % 2 === 0) {
        let index = totalNumbers / 2;
        return (numbers[index - 1] + numbers[index]) / 2;
    } else {
        let index = (totalNumbers + 1) / 2;
        return numbers[index - 1];
    }
};