![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
正经程序员·
If you want to go fast, go alone. If you want to go far, go together.
展开
-
海量数据处理:有1亿个浮点数,找出其中最大的10000个
第一种方法是将数据全部排序,然后在排序后的集合中进行查找,最快的排序算法的时间复杂度一般为O(nlogn),例如快速排序.而在32位机器上,每个float类型占4B,1亿个浮点数就要占用400M的存储空间,对于一些可以内存小于400MB的计算机而言,显然是不能一次将全部数据读入内存进行排序的.其实即使内存能满足要求,该方法也不高效,因为题目的目的是寻找出最大的10000个数即可,而排序是将所有元素...原创 2018-06-15 18:23:15 · 4947 阅读 · 0 评论 -
海量数据处理:查找重复元素
已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数?本题最好的解决方案是通过使用位图法来实现,8位整数可以表示的最大十进制数值为99999999,如果每个数字对应于位图中的一个bit位,那么存储八位整数大约需要99Mbit,因为1Byte = 8bit,所以99Mbit折合成内存为99/8=12.375MB的内存,即可以只用12.375MB的内存表示所有8位数电话号码的内容....原创 2018-06-15 21:29:07 · 4543 阅读 · 0 评论 -
海量数据处理:排序问题
一个文件中有9亿条不重复的9位整数,对这个文件中数字进行排序; 针对这个问题,最容易想到的方法是将所有数据导入到内存中,然后使用常规的排序方法,例如插入排序,快速排序,归并排序等各种排序方法对数据进行排序,最后将排序好的数据存入文件.但这些方法在此并不适用,由于数据量巨大,对32位机器而言,很难将这么多数据一次载入到内存,更不用说进行排序了.所以此种方法一般不可行,需要考虑其他方法.方...原创 2018-06-15 22:44:58 · 8526 阅读 · 0 评论