Алгоритмы, чтобы найти самый длинный общий префикс в скользящем окне - PullRequest
2 голосов
/ 28 мая 2010

Я написал компрессор и декомпрессор Lempel Ziv.

Я стараюсь улучшить время поиска словаря по фразе. Я рассмотрел K-M-P и Бойера-Мура, но я думаю, что алгоритм, который адаптируется к изменениям в словаре, будет быстрее.

Я читал, что бинарные деревья поиска (AVL или со сплайнами) значительно улучшают производительность времени сжатия. Чего я не понимаю, так это как запустить двоичное дерево поиска и вставить / удалить данные. Я не совсем уверен в значении каждого узла в бинарном поиске. Я ищу фразы, поэтому каждый символ будет считаться узлом? Также как и что вставляется / удаляется из дерева поиска, когда новые данные поступают в словарь, а старые данные удаляются?

Двоичное дерево поиска звучит как хорошая отдача, поскольку оно может адаптироваться к словарю, но я просто не совсем уверен в том, как оно используется.

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Хм.Я думаю, что это то, что вам нужно, это дерево B, но я не изучал алгоритм LZ целую вечность.

http://portal.acm.org/citation.cfm?id=301973

http://portal.acm.org/citation.cfm?id=1142385

1 голос
/ 28 мая 2010

Помогает ли ?

...