Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Работа с большими массивами


Автор: lysf 4.8.2009, 09:37
Пусть на диске есть большой массив слов, размером, например, 100 Гб (т.е. целиком в память не поместится). Как за приемлемое время можно получить по слову его индекс в этом массиве?

Автор: Lipetsk 4.8.2009, 10:00
для этого надо потратить еще несколько десятков Гб под индексные файлы
В них например можно хранить позиции слов в исходном файле отсортированные по алфавиту

Автор: Pavia 4.8.2009, 11:57
lysf, 
Бинарный поиск. Хэш таблицы.

Построить суфиксное дерево и сжать вдруг влезет в память.

Автор: lysf 4.8.2009, 12:22
Pavia, 
Бинарный поиск думаю медленновато будет, надо с десяток раз к диску обращаться. Про хэш-таблицу надо подумать как ее кусками загружать в память - пока еще не приходилось близко смотреть на ее внутренне устройство.
Ну и пойду читать про суффиксные деревья -  вообще не слышал раньше про них smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)