首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++面试题,该如何处理

2012-04-19 
C++面试题写出一个高效的算法,一亿个数据去重,前提是内存数据装不下这一亿个数据。。。最后输出去重后的各个

C++面试题
写出一个高效的算法,一亿个数据去重,前提是内存数据装不下这一亿个数据。。。

最后输出去重后的各个数据,并且输出这各个数据在去重前出现的次序。。。

一点头绪都没有,请高手指点。。。

[解决办法]
多路归并算法,你得确定最多一次性能读多少个数
[解决办法]
1亿个什么数据?int吗?如果是,就用内存.
512MB内存,每个位表示一个int.开始全部置0.
然后扫描一遍,每个int,都在内存512M内存里面找对应的位是否为1,为1则不输出.
否则输出,并将相应的位置1.
[解决办法]

探讨

多路归并算法,你得确定最多一次性能读多少个数

[解决办法]
探讨
1亿个什么数据?int吗?如果是,就用内存.
512MB内存,每个位表示一个int.开始全部置0.
然后扫描一遍,每个int,都在内存512M内存里面找对应的位是否为1,为1则不输出.
否则输出,并将相应的位置1.

[解决办法]
如果连 512MB内存 (我不知道是不是这么大, LZ自己算) 都没有的话, 可能要想别的办法...
[解决办法]
写得好。
[解决办法]
采用文件映射!这样就可以不把数据一次性加载到内存中!至于实现的功能 你就采用 楼上说的那个算法实现就行了!
[解决办法]
内想到的是先外部排序一下,然后分段调用unique去重,但感觉效率太低

热点排行