题目描述

如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。

这一题的思路主要在于堆,本猪之前之前都不知道堆是什么。。更不知道大小堆的概念。。故这里仅看懂了思路,但是并没能够重现出来,因为并没有看懂如何维护堆,故在此留坑,看明白如何维护堆的时候,再另作整理。以下为答案:

构建一个最大堆和一个最小堆,分别存储比中位数小的数和大的数。当目前两堆总数为偶数的时候,把数字存入最大堆,然后重排最大堆,如果最大堆的堆顶数字大于最小堆堆顶数字,则把两个堆顶数字交换,重排两堆,此时两堆数字总数为奇数,直接输出最大堆堆顶数字即为中位数;如果当前两堆总数为技术的时候,把数字存入最小堆,重排最小堆,如果最大堆的堆顶数字大于最小堆堆顶数字,则把两个堆顶数字交换,重排两堆,此时两堆数字总数为偶数,取两堆堆顶数字做平均即为中位数。

在此先码一点堆的基本概念:

堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:

(1)堆中某个节点的值总是不大于或不小于其父节点的值;

(2)堆总是一棵完全二叉树。

【最大堆】将根节点最大的堆叫做最大堆或大根堆

【最小堆】根节点最小的堆叫做最小堆或小根堆

python 数据流中的移动平均值_Python实现数据流中的中位数【堆】相关推荐

  1. python获取字典的值_python取出字典中的所有值的两种方法

    原博文 2018-06-19 18:29 − 方法一: spam = {'A':123 ,'B':345,'C':345 } for k,v in spam.items(): print(k,v) 方 ...

  2. python向excel写数据_Python向excel中写入数据的方法

    最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 p ...

  3. python爬虫实时更新数据_Python爬虫 更新中

    基础 一.环境配置 查看已安装的包 pip freeze 导出 pip freeze >requirements.txt 安装 pip install -r requirements.txt - ...

  4. 基于python脚本的参数化建模_Python在ABAQUS中

    Python在ABAQUS中 所属分类:其他 开发工具:Python 文件大小:17325KB 下载次数:0 上传日期:2020-11-25 11:47:17 上 传 者:qwe12334 说明:   ...

  5. python处理csv文件缺失值_python处理数据中缺失值

    (1)直接删除法(当缺失值个数只占整体很小一部分时) 在采用删除法处理缺失值时,需要首先检测样本总体中确实值得的个数.python中统计缺失值的方法为: import numpy as np impo ...

  6. python用方括号提取字符中的数值_python 从字符串中提取数值

    python中用re.findall函数,里面写正则表达式 root@vdirectva:/home/lic_auto_scale# cat re.py import re test=['10Mbps ...

  7. python统计字符串数字个数_python统计字符串中数字个数_后端开发

    python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...

  8. python txt提取特定数据_Python提取列表中的内容 用“python”怎么提取文件里的指定内容?...

    用"python"怎么提取文件里的指定内容? python读取文件内容的方法: 一.最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中: all_the_text = ...

  9. python字符串数组中最短的_python求解数组中两个字符串的最小距离

    题目: 给定一个数组 strs,其中的数据都是字符串,给定两个字符串 str1,str2.如果这两个字符串都在 strs数组中,就返回它们之间的最小距离:如果其中任何一个不在里面,则返回 -1:如果两 ...

  10. for in在python中什么意思_python for in中的in

    清波 首先 in 在Python 中是操作符,具体来说是 成员操作符.就是对于序列(字符串,元组,列表)或集合(set)或映射(字典)这些数据类型 做 成员判断,自然成员判断的返回是 在其中和不在其中 ...

最新文章

  1. 比特币现金之城——北昆士兰
  2. oracle查询一个字符串所在表
  3. 全网最具有挑战的NLP训练营是什么样的?
  4. 一套漂亮的Bootstrap模板
  5. 《深入浅出DPDK》读书笔记(十五):DPDK应用篇(Open vSwitch(OVS)中的DPDK性能加速)
  6. 手机游戏上线前的准备
  7. 千锋培训学python怎么样
  8. DAEMON 中的 SPTD 和 发生sptd.sys 错误的处理办法~
  9. oracle 倒库详细步骤,详细的“倒车入库”步骤来了!一图一解析,照着做考试轻松一把过...
  10. Google Play 应用内购买限制国家地区政策更新
  11. 合成大西瓜自定义图片及部署
  12. 教你如何有效防止DDos攻击?
  13. uniapp自定义导航栏,高度,自定义组件
  14. Python代码实现中国日报网双语文章订阅至邮箱
  15. linux quota硬盘,Linux系统中quota磁盘命令的相关使用解析
  16. 03、【电脑维修】防火墙丢失,找不到 windows firewall服务, windows defender firewall服务被禁用或防火墙无法打开
  17. 你真的会用ls命令吗?--文件管理命令(ls命令详解)
  18. caffe layer层详解
  19. 首汽约车安全出行的点“智”之笔
  20. 小程序生成带信息的二维码

热门文章

  1. 图的应用之--图的连通
  2. vim编辑文件时显示行号
  3. Java-----Excel转HTML
  4. 没错 企业想提升安全防护需要HR的合作
  5. [学习css系列]纯css实现移入移出效果
  6. 关于bridge-nf-call-iptables的设计问题
  7. linux hal 结构图
  8. vc屏幕录像存为wmv文件_最好用的录像软件,三步实现高清录制?
  9. c# 如何获取项目的根目录
  10. 给oracle数据库某一列数据的前面或者后面增加字符,合并两列的值