跳至主要內容

数据流中的中位数

微信公众号:储凡Less than 1 minute

数据流中的中位数

题目链接

题目描述

刷题思路

代码实现

/*
 * @Description: 【中等】数据流中的中位数
 * @Version: Beta1.0
 * @Author: 微信公众号:储凡
 * @Date: 2021-04-29 21:38:01
 * @LastEditors: 微信公众号:储凡
 * @LastEditTime: 2021-04-29 21:39:13
 */

// 存储数据
let result = []
export function Insert(num) {
  result.push(num)
  // 当然,也可以在push之后去排序
}

/**
 * 获取数据流的中位数
 */
export function GetMedian() {
  // 先排序
  result = result.sort((a, b) => a - b)
  const len = result.length

  // 奇数
  if (len % 2 !== 0) {
    return result[Math.floor((len - 1) / 2)]
  }
  else {
    // 分别获取低位 和高位
    const low = result[Math.floor((len - 2) / 2)]
    const high = result[Math.floor((len) / 2)]

    // 去平均值
    return (high + low) / 2
  }
}

一些建议