有1千万条重复的短信,以文本的形式保存,一行一条,也有重复,请用5分钟时间找出重复最多的前10条短信
2016-02-25 15:01
281 查看
采用内存映射办法。
首先,1千万条短信按现在的短息长度将不会超过1GB空间,使用内存映射文件比较合适,可以一次映射 (如果有更大的数据量,可以采用分段映射),由于不需要频繁使用文件I/O和频繁分配小内存,这将大大提高了数据的加载速度。
其次,对每条短信的第i(i从0到70)个字母按ASCII码进行分组,也就是创建树。i是 树的深度,也是短信第个字母。
这个问题主要是解决两方面的问题:
(1) 内容的加载,
(2)短信内容的比较。
采用内存映射技术可以解决内容加载的性能问题(不仅是不需要调用文件I/O函数,而且也不需要每读出一条短信都要分配一小块内存),而使用树技术可以有效地减少比较测次数。
首先,1千万条短信按现在的短息长度将不会超过1GB空间,使用内存映射文件比较合适,可以一次映射 (如果有更大的数据量,可以采用分段映射),由于不需要频繁使用文件I/O和频繁分配小内存,这将大大提高了数据的加载速度。
其次,对每条短信的第i(i从0到70)个字母按ASCII码进行分组,也就是创建树。i是 树的深度,也是短信第个字母。
这个问题主要是解决两方面的问题:
(1) 内容的加载,
(2)短信内容的比较。
采用内存映射技术可以解决内容加载的性能问题(不仅是不需要调用文件I/O函数,而且也不需要每读出一条短信都要分配一小块内存),而使用树技术可以有效地减少比较测次数。
相关文章推荐
- csshack
- 查看Oracle执行计划的几种常用方法-系列1 .
- Android屏幕适配方案---基于官网文档结合个人理解
- HDU 2502 月之数 (数学 || bitset妙用)
- 深度复制JavaScript对象
- 大头小头字节序
- MySQL预处理语句
- Gamma校正
- Educational Codeforces Round 6 D. Professor GukiZ and Two Arrays 二分
- $.ajax()方法详解
- 《Linux内核分析》课程第一周学习总结
- 大头小头字节序
- FMDB
- oracle查看允许的最大连接数和当前连接数等信息
- RHCE 系列(九):如何使用无客户端配置 Postfix
- Oracle权限管理详解、授权
- -fembed-bitcode is not supported on versions of iOS prior to 6.0
- iOS开发系列--UITableView全面解析
- Swift闭包详解
- 算法之美_源代码发布(11)——完结篇