Skip to content

Goredell/FreqAn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FreqAn

Необходимо написать консольное приложение на C#, выполняющее частотный анализ текста.
Входные параметры: путь к текстовому файлу.
Выходные результаты: вывести на экран через запятую 10 самых часто встречающихся в тексте триплетов (3 идущих подряд буквы слова), и на следующей строке время работы программы в миллисекундах.
Требования: программа должна обрабатывать текст в многопоточном режиме, триплеты Case-sensitive.

Программа реализована через thread-safe словарь, где Key - триплет, Value - кол-во встреч. Пополняется через функцию AddOrUpdate.
Многопоточность реализована через класс Parallel, считываемые строки обрабатываются сразу при извлечении их из файла, так что 99% времени работы программы - считывание из файла.
Программа предполагает что файл многострочный, если в файле одна строка любой длины, то программа, фактически, работает в одном потоке. Если такое решение не устраивает - хотелось бы получить вторую попытку.
Тесты проводились на:

  • 1000-кратно повторённой .txt версии "Войны и мира" весом 1237332 КБ, время исполнение 4250 мс;
  • Файлах не содержащих буквенных символов или символов вообще;
  • Файлах содержащих необычные симовлы, например: ẞ,ö;
  • Файлах содержащих меньше 10 триплетов.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages