Я написал компрессор и декомпрессор Lempel Ziv.
Я стараюсь улучшить время поиска словаря по фразе. Я рассмотрел K-M-P и Бойера-Мура, но я думаю, что алгоритм, который адаптируется к изменениям в словаре, будет быстрее.
Я читал, что бинарные деревья поиска (AVL или со сплайнами) значительно улучшают производительность времени сжатия. Чего я не понимаю, так это как запустить двоичное дерево поиска и вставить / удалить данные. Я не совсем уверен в значении каждого узла в бинарном поиске. Я ищу фразы, поэтому каждый символ будет считаться узлом? Также как и что вставляется / удаляется из дерева поиска, когда новые данные поступают в словарь, а старые данные удаляются?
Двоичное дерево поиска звучит как хорошая отдача, поскольку оно может адаптироваться к словарю, но я просто не совсем уверен в том, как оно используется.