Параллельный алгоритм первой десятки для распределенных данных
Это вопрос интервью. Предположим, что есть несколько компьютеров, и каждый компьютер хранит очень большой файл журнала посещенных URL. Найтидесятка лидеров наиболее посещаемые URL.
Например: предположим, что есть только 3 компьютера, и нам нужендва лучших наиболее посещаемые URL.
Computer A: url1, url2, url1, url3 Computer B: url4, url2, url1, url1 Computer C: url3, url4, url1, url3 url1 appears 5 times in all logs url2 2 url3 3 url4 2 So the answer is url1, url3
Файлы журнала слишком велики, чтобы поместиться в ОЗУ и скопировать их по сети. Как я понимаю, важно также сделать вычисления параллельными и использовать все данные компьютеры.
Как бы вы решили это?