KasatkinaMariya/Autocomplete
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Autocompletter - библиотека, предоставляющая немедлительную реализацию IAutocompletter, позволяющего для конкретного префикса получать набор из не более N слов, упорядоченный по частоте их употребления. public interface IAutocompletter { void FillVocabulary(IEnumerable<VocabularyItem> itemsToAdd); IEnumerable<WordsForPrefix> GetWordsForPrefixes(IEnumerable<string> prefixes); } Немедлительность достигается за счет: - сохранения словаря в структуру данных, основанную на trie; - сравнения элементов словаря с помощью специального хэша и ленивого вычисления его значения; - накопления ответа для конкретного префикса в специальной структуре данных, позволяющей легко вставлять новые элементы, поддерживать порядок между ними и исключать ненужные элементы; - чтения конкретного параметра из App.config ровно один раз; - распараллеливания при большом количества данных и работы в одном потоке при малом объеме данных. AutocompleteUser - консольное приложение, которое читает входные данные, проверяет их корректность, использует IAutocompletter для обработки и сохраняет результаты. Tests - проект тестов, позволяющий для разных входных данных (много длинных слов и мало префиксов, мало длинных слов и много коротких префиксов, пр.) проверить: - производительность реализации IAutocompletter на разных этапах работы; - корректность ответов реализации IAutocompletter.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published