游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: diwayou

当年腾讯笔试最后附加题

[复制链接]

63

主题

181

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2009-10-19 06:29:00 | 显示全部楼层

Re:当年腾讯笔试最后附加题

取1G内存取3次,每次循环读取Num,然后count[Num]++;最后弄成像histogram的样子。然后取Sum(Count[Num])的一半,再循环一遍Count[Num]看落在第几位上就是中位数。不知道这个思路行不行?

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-10-19 10:56:00 | 显示全部楼层

Re: 当年腾讯笔试最后附加题

使用内存文件映射,这样可以操作大文件,你的3g数据在硬盘也是就是一个文件啊,映射成功后,你要访问任意
位置的数据就指针+偏移就是了。

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-10-19 11:09:00 | 显示全部楼层

Re:当年腾讯笔试最后附加题

有了内存文件的指针后就是算偏移就是了,大体上就是of=(1024*1024*1024*3)/2-sizeof(int)/2;
这个数据为int d=*(int*)(p+of);

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2009-10-20 14:54:00 | 显示全部楼层

Re: Re: 当年腾讯笔试最后附加题

87089123: Re: 当年腾讯笔试最后附加题

使用内存文件映射,这样可以操作大文件,你的3g数据在硬盘也是就是一个文件啊,映射成功后,你要访问任意
位置的数据就指针+偏移就是了。

  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-19 22:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表