Сжатие LZW и реализация словаря с использованием хеширования - PullRequest
0 голосов
/ 30 марта 2019

У меня длинный текст, который должен быть сжат с использованием алгоритма сжатия LZW.Я должен назначить 16-битный код для последовательности символов ASCII.Например, «aa» будет иметь 16-битный код «0000000010000000» (только после «DEL», т. е. 0000000001111111).Теперь, прежде чем начать сжатие, я должен инициализировать словарь 'NUL': 0000000000000000 'SOH': 0000000000000001,.,,,'DEL': 0000000001111111.

Я должен использовать хеширование для реализации этого словаря.Теперь мне нужна помощь в понимании этого утверждения о том, как хеширование используется для реализации словаря.Также, пожалуйста, предложите мне хэш-функцию, которая сделает эту работу.Примечание: мне нужно использовать квадратичное зондирование для обработки столкновений.

1 Ответ

0 голосов
/ 03 июля 2019

LZW не требует обработки коллизий, поскольку для хэша словаря требуется всего 32 МБ памяти, и это не проблема в 2019 году. См. словарь разреженных массивов в lzws .

...