Tekkaman

导航

 

2013年7月3日

摘要: 【10G个64bit整数,找出中位数】 题目:在一个文件中有10G个64bit整数,乱序排列,要求找出中位数。内存限制为2G。 解法:内存限制为2G表面上是限制,实际上是一种提示,在提示我们如何利用2G内存来解决这道题。 2G内存可以存放256M个64bit整数。我们可以将64bit的整数空间(2^64)平均分成256M(2^28)个取值范围,每个范围为(2^(64-28)),用2G的内存对每个取值范围内出现整数个数进行统计。这样遍历一遍10G整数后,我们再从头把2G中的数字统计一遍,便知道中数在那个区间内出现,以及这个范围内总共出现了多少个整数,第一轮中,这个区间为2^(64-28... 阅读全文
posted @ 2013-07-03 23:10 Tekkaman 阅读(439) 评论(0) 推荐(0)