Skip to content

KasatkinaMariya/Autocomplete

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

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

No packages published

Languages