从大文件中查找唯一值

use*_*ame 3 c algorithm hash memory-management bigdata

我有一个大文件(比如10TB)和MD5哈希流(包含重复项),我有一个10MB(非常有限)的内存和无限的硬盘空间.使用给定条件查找所有唯一哈希(消除重复).请帮忙,这显然不是一个功课问题

Zim*_*oot 8

您可以使用外部排序算法(例如,使用多阶段合并排序)对哈希值进行排序,之后您只需要遍历文件并跳过等于最新哈希值的任何哈希值

hash mostRecentHash;
while(fileHasHashes) {
    temp = fileWithDuplicates.readHash();
    if(!hashesAreEqual(mostRecentHash, temp)) {
        mostRecentHash = temp;
        fileWithoutDuplicates.writeHash(mostRecentHash);
    }
}
Run Code Online (Sandbox Code Playgroud)