Главная страница

Алгоритмы и структуры данных. Соколов А.С. Курсовой 4-80к. Курсовая работа по курсу Алгоритмы и структуры данных


Скачать 140.61 Kb.
НазваниеКурсовая работа по курсу Алгоритмы и структуры данных
АнкорАлгоритмы и структуры данных
Дата06.08.2019
Размер140.61 Kb.
Формат файлаdocx
Имя файлаСоколов А.С. Курсовой 4-80к.docx
ТипКурсовая
#84836
страница3 из 4
1   2   3   4

Оптимизация быстрого прототипа



Поскольку коды Хаффмана – коды знакопеременной длины, то задачей оптимизации является «упаковка» данных кодов побайтно.

То есть, если, например, во входном потоке идет последовательность 001 10001, то не обязательно выделять каждый раз под код 1 байт (т.е. в данном примере выделилось бы 2 байта на данный код: 1 байт займет код 001, 1 байт займет код 10001), а можно уложить данные коды в один байт. Тем-самым, сократив размер файла.

Кодер реализует следующий алгоритм:

  1. Построение карты (таблицы) частот

  2. Построение дерева Хаффмана

  3. Получить очередной символ из входного потока

  4. Вычислить код символа по текущему состоянию дерева

  5. Записать карту частот в выходной поток

  6. Записать в выходной поток количество дополнительных бит (для выравнивания выходного потока)

  7. Упаковать коды Хаффмана в байты. На выходе – массив байт.

  8. Для каждого байта в массиве байт: записать закодированный по дереву Хаффмана байт в выходной поток.

  9. Конец.


Разработка интерфейса и испытания



Организованно диалоговое окно, которое позволяет выбрать любой файл.

Так же программа не привязана к определённому месту сохранения результата. Путь сохранения результата совпадает с местом хранения исходного файла.

Для исключения ошибки повторения имени файла, происходит добавление к файлу расширения (.huff).

Окно приложения показано на рисунке 4.


Рисунок 4 – Результаты испытания быстрого прототипа
1   2   3   4


написать администратору сайта