摘要:
在某些应用中,因为内存资源有限制,而要排序的文件很大(比如10G的文件,只有10M的内存)主要的思想是:1 分割文件,使分割的文件能全部加载到内存。2 分别排序每一个分割的文件3 合并文件难的是合并操作1 跌增合并,一次合并两个文件。依次类推,直到最终只剩一个文件。时间复杂度主要在读取文件,要多次读取。2 利用堆,一次合并多个文件 时间复杂度主要取决于堆的查找。(堆主要用于查找当前最小的行) 或者更直接的是,每次顺序查找当前内存中的最小行。一般而言内存访问速度要快很多,因此第2中方法应该快很多。如下是一个简单的window上的实现://单行最大长度lEN_LINE - 1#define LEN 阅读全文
posted @ 2012-03-24 11:43
windflying
阅读(4278)
评论(0)
推荐(0)

浙公网安备 33010602011771号