- 6
- 0
- 约1.21千字
- 约 3页
- 2026-04-26 发布于北京
- 举报
从5亿个数中找出中位数
题目
学习时长:20分钟
题目难度:中等
知识点:双堆法、分治法、大数据量处理
题目描述
从5亿个数中找出中位数。
数据排序后,位置在最中间的数就是中位数。当样本数为奇数时,中位数为第个数;当样本
数为偶数时,中位数为第个数与第个数的均值。
1.解答思路
如果这道题没有内存大小限制,则可以把所有数读到内存中排序后找出中位数。但是排序算法的
时间复杂度都为O(NlogN)。这里使用其他方法。
方法一:双堆法
两个堆,一个大顶堆,一个小顶堆。大顶堆中最大的数小于等于小顶堆中最小的数;保证这两个堆
中的元素个数的差不超过1。
若数据总数为偶数,当这两个堆建好,中位数就是这两个堆顶元素的平均值。当数据总数为奇数
时,根据两个堆的大小,中位数一定在数据多的堆的堆顶。
``
privatePriorityQueueIntegerminHeap;
以上这种方法,需要把所有数据都加载到内存中。当数据量很大时,就不能这样了,因此,这种方法适
用于数据量较小的情况。5亿个数,每个数字占用4B,总共需要2
您可能关注的文档
最近下载
- 2025年江苏省高考数学试卷(含答案及解析).docx
- 2025年广东阳江市中考化学试题及答案.docx VIP
- 国标动力专业图集 - 08R418-1 管道与设备绝热-保温(有水印).pdf VIP
- 更新:2026年喀什人才引进面试预测试题.docx VIP
- (6篇)2026年度党支部组织生活会谈心谈话记录汇编.docx VIP
- 青岛中加特变频一体机培训.pptx
- 永大高速江底河特大桥悬索桥重力式锚碇(安全)专项施工方案.docx VIP
- 2026年喀什事业单位面试预测试题三(综合类).docx VIP
- 2023年医疗卫生系统招聘考试公共卫生管理专业知识历年真题荟萃带答案难题附详解荟萃.docx VIP
- 2023年医学类A医疗卫生系统招聘考试公共卫生管理专业知识历年真题荟萃带答案难题附详解荟萃.docx VIP
原创力文档

文档评论(0)