Задать вопрос
@12rbah

Сколько врмени должно занимать получение частоты слов из большого файла?

Есть файл объемом 5 гигабайт, нужно найти частоту встречаемости слов. Моя реализация занимает по времени тратит около 6 минут на проверку вхождения одного слова и мне кажется, что это слишком много. Поэтому решил уточнить является ли такое время проверки нормальным для такого объема данных.
  • Вопрос задан
  • 142 просмотра
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 2
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Невозможно ответить однозначно. Время в данном контексте зависит от многих факторов: алгоритма, вашего железа, компилятора, флагов сборки и т.п. То есть, время не говорит читателю вашего вопроса вообще ничего.

В конце концов, если ресурсы позволяют, можно прочитать весь файл в какой-нибудь структуру типа словаря и получать частоту вхождения слова за O(1) или O(log n) в зависимости от того, какую струтуру вы выбрали. Тут время будет тратится на чтения файла и создание структуры данных, но один раз.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
6 минут (или меньше) - для получения полной частотной статы по всем словам за один проход.
Ещё быстрее: можно читать файл в несколько потоков, а разрывы - склеить по ориентиру байт-смещения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы