Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#56 closed ожидается проверка (задача сдана)

ha2 Huffman

Reported by: Sergei Shulman Owned by: Vladimir Rutsky
Priority: проверка Milestone:
Component: HA#2 huffman Version: 1.0
Keywords: Cc:

Description

Здравствуйте!

Посмотрите, пожалуйста, мою реализацию кодирования Хаффмана.
Жду Ваши замечания и рекомендации.

С уважением,
Сергей

Change History (4)

comment:1 Changed 7 years ago by Vladimir Rutsky

Milestone: ha2-milestone1ha2-milestone2
Type: ожидается проверкаожидаются исправления

Замечания:

  1. Используйте тип size_t для индексов и размеров.
  1. Вместо std::uint32_t const max_uint32 = 4294967295; используйте numeric_limits<uint32_t>::max().
  1. // search of two minimum elements. Not very fast but works - перепишите данный код, используя готовые структуры данных, например std::priority_queue.
  1. Вместо вставки в начало, лучше вставлять в конец, а затем перевернуть строку (std::reverse):
codes[frequences[i].first].insert(0,(cor_node.is_left) ? "1" : "0");
  1. Выводимая статистика распаковки в некоторых случаях некорректна:
$ ./huffman -c -f abababab.1.in -o __compressed
8
1
12
$ ./huffman -u -f __compressed -o __decompressed
2
8
12

Исправьте, пожалуйста, в течение 60 часов.

comment:2 Changed 7 years ago by Sergei Shulman

Type: ожидаются исправленияожидается проверка

Исправил.

size_t не используется для размеров в двух местах, где размер пишется/читается из файла.

для priority_queue добавлена новая структура данных

При исправлении статистики алгоритм сжатия был усовершенствован для файлов с одним различным символом.

comment:3 Changed 7 years ago by Vladimir Rutsky

Resolution: задача сдана
Status: newclosed

Решение зачтено.

comment:4 Changed 7 years ago by Vladimir Rutsky

Milestone: ha2-milestone2

Milestone ha2-milestone2 deleted

Note: See TracTickets for help on using tickets.