Вычисление медианы массива в JavaScript: методы и примеры

Чтобы вычислить медиану массива в JavaScript, вы можете использовать различные методы. Вот несколько подходов:

Метод 1: сортировка

  1. Отсортируйте массив по возрастанию.
  2. Если длина массива нечетная, медианой является средний элемент. Если длина массива четная, медиана представляет собой среднее значение двух средних элементов.
function calculateMedian(arr) {
  arr.sort((a, b) => a - b);
  const mid = Math.floor(arr.length / 2);
  if (arr.length % 2 === 0) {
    return (arr[mid - 1] + arr[mid]) / 2;
  } else {
    return arr[mid];
  }
}

Метод 2: алгоритм быстрого выбора

  1. Реализовать алгоритм быстрого выбора для поиска k-го наименьшего элемента в несортированном массиве.
  2. Используйте этот алгоритм, чтобы найти медиану, найдя элемент по индексу Math.floor(arr.length / 2).
function quickselect(arr, k) {
  // Implementation of Quickselect algorithm
}
function calculateMedian(arr) {
  const mid = Math.floor(arr.length / 2);
  const median = quickselect(arr, mid);
  if (arr.length % 2 === 0) {
    const median2 = quickselect(arr, mid - 1);
    return (median + median2) / 2;
  } else {
    return median;
  }
}

Метод 3. Использование математической библиотеки и оператора распространения

  1. Используйте оператор распространения (…), чтобы создать копию массива.
  2. Используйте библиотеку Math для сортировки скопированного массива.
  3. Рассчитайте медиану, используя ту же логику, что и в методе 1.
function calculateMedian(arr) {
  const sortedArr = [...arr].sort((a, b) => a - b);
  const mid = Math.floor(sortedArr.length / 2);
  if (sortedArr.length % 2 === 0) {
    return (sortedArr[mid - 1] + sortedArr[mid]) / 2;
  } else {
    return sortedArr[mid];
  }
}