大数据项目(仅自我复习所用,无参考意义)
题目:利用500M的内存,计算10G的数据的中位数。
- 首先我们需要生成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,然后从第一个文件开始相加,