大数据全系列 教程
1869个小节阅读:467.4k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
需求:
有一个非常大的文本文件,里面有非常多的行,只有两行内容一样,它们出现在未知的位置,需要查找到它们。硬件:单台机器,而且可用的内存很少,也就500MB。
• 假如IO速度是500MB/S 1000 000 MB/500(MB/S) = 1000*2S
• 1T文件读取一遍需要约30分钟(2000S/60S)
• 循环遍历需要N次IO时间
• 分治思想可以使时间降为2次IO
如何对1TB文件进行排序?
• 假如IO速度是500MB/S
• 1T文件读取一遍需要约30分钟
方式1:外部有序,内部无序,然后再逐一读入内存排序
方式2:逐一读取500M排序,内部有序,外部无序 ,然后进行归并排序