社区
数据结构与算法
帖子详情
百度面试题海量数据排序类
apple7891
2009-10-09 05:08:30
linux32位系统下有10个无序文件,各文件大小不一(均小于1G)现在需要将此10个文件归并为一组,不超过10个有序文件(第一个文件最大数小于或等于第二个文件最小数,依次类推)请选择你擅长的语言实现说明 文件的每一行最大不超过128位的阿拉伯数字组合,每一行只有一个数字,头一位不是零
要求写出思路和程序,计算时间复杂度和空间复杂度
用内排序能实现吗?请高手赐教啊~~~~~
...全文
1767
14
打赏
收藏
百度面试题海量数据排序类
linux32位系统下有10个无序文件,各文件大小不一(均小于1G)现在需要将此10个文件归并为一组,不超过10个有序文件(第一个文件最大数小于或等于第二个文件最小数,依次类推)请选择你擅长的语言实现说明 文件的每一行最大不超过128位的阿拉伯数字组合,每一行只有一个数字,头一位不是零 要求写出思路和程序,计算时间复杂度和空间复杂度 用内排序能实现吗?请高手赐教啊~~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yubeiluo1
2010-03-24
打赏
举报
回复
mark
jellyabcd
2009-10-14
打赏
举报
回复
mark
threeleafzerg007
2009-10-10
打赏
举报
回复
擦 自己认真看看题意
showjim
2009-10-10
打赏
举报
回复
[Quote=引用 6 楼 threeleafzerg007 的回复:]
这题简单 楼上的兄弟提醒了我
这样划分10个文件。(假设数字均匀分布)
0 文件 0-12位以上全0
1 文件 13-25位以上全0 (0-12位 不care)
2 文件 26-48位以上全0
。。。
9 文件
这样划分就可以保证你的要求了
都不用排啥序 (因为某个文件内没要求是有序的 文件间有序就OK撒)
时间复杂度O(n)
[/Quote]
文件间有序?那还不如写到一个文件里算了.
showjim
2009-10-10
打赏
举报
回复
32位系统,程序内存最大只有4G或2G.10G阿拉伯数字转成2进制,需要接近5G的空间,内排是解决不了问题的.
1.为了减少单值比较复杂度,可以将阿拉伯数字转成2进制,最简单的是两个数字转成1个字节,那么单值最多64字节;
给每个单值添加一个(单值的bit数/2).或两个字节(9b+7b)的长度标识,9b用于标识单值的bit数,7b用于复制单值的最高7位,如果单值最高位不为1还可以节省一个字节.
2.尽可能多的读取数据到内存并排序后写入到文件.
如果快排,单值要固定长度64b/65b/66b.
如果树排,单值长度随实际情况变化.
3.最后文件归并排序并将2进制还原成阿拉伯数字写入到文件组.
对于题目中的"不超过10个有序文件",不明白是什么意思,好像这个要求是多余的.如果阿拉伯数字长度固定为128位且分布第1位数分布均匀,可以考虑将先用基数排序将数据分到10个文件,然后单独对每一个文件数据进行内排序.
threeleafzerg007
2009-10-10
打赏
举报
回复
注 0-12位以上全0的同时 0-12位要非0
threeleafzerg007
2009-10-10
打赏
举报
回复
这题简单 楼上的兄弟提醒了我
这样划分10个文件。(假设数字均匀分布)
0 文件 0-12位以上全0
1 文件 13-25位以上全0 (0-12位 不care)
2 文件 26-48位以上全0
。。。
9 文件
这样划分就可以保证你的要求了
都不用排啥序 (因为某个文件内没要求是有序的 文件间有序就OK撒)
时间复杂度O(n)
suever
2009-10-10
打赏
举报
回复
基数排序吧?
每次处理一位,从最后一位开始处理。
将0-9分别存入10个文件中。
再处理这10个文件。
内排序感觉上是不行的,不过不排除你是用服务器
starwing83
2009-10-10
打赏
举报
回复
比如说,首先根据最后4位,分成10000个文件。根据前四位的数字,分别放入这10000个文件里面。然后合并这些文件为一个。然后根据最后5~8位,分成10000个文件。同样这么处理。一直到处理到第128位就齐活了。
apple7891
2009-10-10
打赏
举报
回复
8楼提供的用于比较两个数字的方法蛮有借鉴价值的
盘股之
2009-10-10
打赏
举报
回复
汗死!我连题目都没看懂.
apple7891
2009-10-09
打赏
举报
回复
如果10个文件,每个文件的大小都是1G,那怎么对10个文件做排序呢?
starwing83
2009-10-09
打赏
举报
回复
128位十进制数字?分4位4位进行32次基数排序试试看吧。
apple7891
2009-10-09
打赏
举报
回复
难道就没有人一起讨论吗?
海量
数据
面试题
整理
整理的一些常见互联网
海量
数据
排序
面试题
。
十道
海量
数据
处理
面试题
与十个方法大总结 面试必备
十道
海量
数据
处理
面试题
与十个方法大总结 计算机专业面试必备
百度
腾讯 面试常问题目 希望没让大家失望
基于阿里云的
海量
数据
处理
数据
仓库(离线)实战教程
搭建高可用的、高可靠的Flume
数据
采集通道,运用阿里云DateHub构建中间缓冲队列并担任
数据
分发枢纽将
数据
推送至阿里自主研发的DataWorks对
数据
进行分层处理,采用MaxCompute作为处理
海量
数据
的方案,将计算结果保存...
十道
海量
数据
处理
面试题
与十个方法大总结
十道
海量
数据
处理
面试题
与十个方法大总结,对
百度
,淘宝,腾讯等大企业的面试中必出现的大
数据
出来问题总结
必备的常用
面试题
汇总
常见算法笔试或
面试题
笔试面试专栏:字符串 数组 vc题集 十道
海量
数据
处理
面试题
与十个方法大总结 google全程
面试题
其他一些公司的
面试题
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章