题解 | #数据流中的中位数#

数据流中的中位数

https://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1

// 使用插入排序,在数据流加入数组的同时进行排序
const arr = [];
function Insert(num)
{
    let i = 0;
    // 循环找到第一个比num大的元素,将num添加到该元素位置上,该元素就被挤到下一位上
    while(arr.length && arr[i] < num){
        i++;
    }
    arr.splice(i , 0, num);
}
function GetMedian(){
	// 计算中位数
    let size = arr.length;
    let mid = 0;
    // 偶数个元素,中位数是中间位置的两个数的平均
    if(size % 2 === 0){
        mid = (arr[size / 2] + arr[size / 2 - 1]) / 2;
        return mid;
    }
    else{
        mid = arr[Math.floor(size / 2)];
        return mid;
    }
}
module.exports = {
    Insert : Insert,
    GetMedian : GetMedian
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 10:46
点赞 评论 收藏
分享
去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
09-27 00:29
东北大学 Java
伟大的麻辣烫:查看图片
阿里巴巴稳定性 74人发布 投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务