一个腾讯面试题

honghu069 2010-10-19 09:55:47
晚上去面腾讯,面试官给了一个题目,不会,请教各位

20亿个无符号int数(应该存在文件里吧),范围0~2^32-1 ,给2G内存,如何排序,不要用写入硬盘文件之类的辅助办法
...全文
491 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangqiurui 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 oo 的回复:]
读4次
先处理0~2^30-1
然后处理2^30 ~ 2^31-1
再处理2^31 ~ 2^31 + 2^30-1
最后处理2^31 + 2^30 ~ 2^32-1
[/Quote]

您的第一步,处理0到2的30次方-1,这个范围内最多有2的30次方个(1亿多),对int来说每个占用4字节,一亿多个数最少要占用4亿个字节,如果全部读进内存,需要超过4G的内存。题目中只有2G内存,明显做不到的
loveonepiece 2010-12-21
  • 打赏
  • 举报
回复
读四次还正解啊?一次就能把数据分区了。。。
hcfilippo 2010-11-03
  • 打赏
  • 举报
回复
8楼正解,用的是类似于map reduce的思想
liutengfeigo 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 oo 的回复:]

读4次
先处理0~2^30-1
然后处理2^30 ~ 2^31-1
再处理2^31 ~ 2^31 + 2^30-1
最后处理2^31 + 2^30 ~ 2^32-1
[/Quote]
牛逼
oo 2010-10-20
  • 打赏
  • 举报
回复
读4次
先处理0~2^30-1
然后处理2^30 ~ 2^31-1
再处理2^31 ~ 2^31 + 2^30-1
最后处理2^31 + 2^30 ~ 2^32-1



  • 打赏
  • 举报
回复
坐等牛人到来解决....
lyingbo 2010-10-20
  • 打赏
  • 举报
回复
不知道多路归并可行不?
somebody 2010-10-20
  • 打赏
  • 举报
回复
学习哈……占个位置
bingshanzhiling 2010-10-20
  • 打赏
  • 举报
回复
多路归并?不知道。。。
air_snake 2010-10-20
  • 打赏
  • 举报
回复
thinking
  • 打赏
  • 举报
回复
分成4个部分,每个部分5亿个数,或者分成更多的部分
对每个部分进行排序,然后在归并所有的部分
honghu069 2010-10-19
  • 打赏
  • 举报
回复
用位图不够吧,要计数的
fanster28_ 2010-10-19
  • 打赏
  • 举报
回复
腾讯酷爱考位图?

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧