Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, Codechanger, Вы писали:
C>>Я бы в памяти просто строил дерево на каждом guid (один символ — один уровень дерева). С каждым следующим гуидом дерево достраивается, если соответствующая ветка уже есть на нижнем уровне, то гуид имеет смысл вывести на экран. Проход по файлу будет один, по идее. А по поводухешей для гуидов — если считаете интами, возможны коллизии
J>ты предлагаешь по сути загрузить все гуиды в TreeSet. По условию задачи на это не хватит памяти.
Всегда есть внешняя память в виде жесткого диска. Немного поясню мысль про дерево. Guid у нас состоит из 36 символов, соответственно, в дереве будет максимально 36 уровней. Новые ветки будут добавляться только в случае, если такого пути не существует.Отсюда вытекает другая интересная задачка- Каков максимальный объем гуидов, которые полностью не совпадают с друг другом по путям? Подозреваю, что тоже в оперативную память может не влезть