大数据找中位数

本文介绍了如何在只有500M内存的限制下,计算10G数据的中位数。首先通过生成随机数并写入文件来模拟大数据,接着将数据分散到100个文件中,利用哈希策略。然后,通过对文件大小的比较找到中间文件,并判断该文件中的数据范围。最后,通过排序算法(如堆排序或快速排序)确定中位数,并进行验证。代码实现附后。
摘要由CSDN通过智能技术生成

                      大数据项目(仅自我复习所用,无参考意义)

题目:利用500M的内存,计算10G的数据的中位数。

  1. 首先我们需要生成10G的数据,这里用到了一些文文件的操作。(fopen()打开文件,fwrite() 写文件,rand()产生随机数函数,fclose()关闭文件)。

             注意点:(1).打开文件必须要关闭文件。

                           (2)rand()是产生随机数的函数,他的取值范围是0~32767,他产生的是伪随机数。srand()和时间参数                                       才可以真正的生成随机数。

2.创建100个文件,将这些数据利用类似于哈希的方式将他们填进去。

       (1). 这里我们先用一个(char)类型二维数组,将这100个文件命名,用到sprintf()这个函数。

       (2)然后用这100个文件名去创建100个文件,就回到了文件操作。

       (3)将这些随机数散列的放到这100个文件中去。(用每个值除以每个段的平均处理宽度)。

       (4)关闭文件。

3.比较这100个文件的大小,然后找到最中间的那个文件。

       (1)我们总共有10个G的数据,然后就一半就是5G,然后从第一个文件开始相加,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值