Кстати, отсортированные словари можно использовать для стеганографии. Т.е. переставлять строки в файле в определенном порядке, используя внешнюю информацию, а потом можно заново отсортировать файл и восстановить соответствие, где была строка в оригинале, и куда она переставлена, и извлечь эту информацию. Надо будет сделать утилитку для этого. Фишка в том, что стеганографию можно использовать не только для незаметной передачи информации, но и для сжатия. Например, я экспериментировал со stegzip. Oказалось, что можно разбить файл на две части, типа file=file1+file2, и при помощи stegzip засунуть file2.zip в file1.zip, и получить file1.steg.zip, содержащий всю информацию из file, и использующий только сжатие zip, но при этом меньше размером, чем исходный file.zip, даже с использованием самых крутых оптимизаторов парсинга. Любые LZ77 алгоритмы сжатия избыточны, т.к. дают возможность декодировать один и тот же файл из разных кодов, т.к. матч - это просто ссылка на предыдущее вхождение строки, и т.о. можно поставить ссылку на любое из предыдущих вхождений, и корректно декодировать эту ссылку в правильную строку, но при этом сам код матча будет разный, что и дает избыточность. Ну и существует программа stegzip, которая позволяет использовать эту избыточность для хранения полезной нагрузки. Например, в архиве book1.zip (размером порядка 300k) помещается порядка 50k нагрузки: т.е. получается обычный zip-архив, без левых вставок и т.п., при обычной распаковке выходит обычный файл, а при помощи stegzip оттуда можно извлечь другой файл. > Ты хочешь сказать что при внедрении нагрузки размер исходного файла не увеличивается? Увеличивается, но меньше, чем размер нагрузки. > А на nishi\u есть эта утилита? stegzip http://nishi.dreamhosters.com/u/stegzip_v2.rar Там внутри тест на .docx, но .docx - это реально зип. Кстати, скорость такая не из-за алгоритма, а потому что тупой матчфайндер полным перебором. Если будет интерес, можно ускорить.