Opened 6 years ago

Closed 6 years ago

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

Home assignment #2

Reported by: Nicholas Kapralov Owned by: rutsky,grabovoy.philipp
Priority: проверка Milestone: ha2-deadline
Component: HA#2 huffman Version: 1.0
Keywords: Cc:

Description

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

Закоммитил файлы второго ДЗ, программа проходит smoke-test без valgrind'а, к сожалению, пока что имеются утечки памяти. Также я сейчас не успеваю сделать вывод кодов Хаффмана в лексикографическом порядке, на текущий момент они выводятся в порядке возрастания десятичных кодов символов, что я обязательно исправлю к финальному дедлайну.

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

С уважением,
Николай.

Change History (8)

comment:1 Changed 6 years ago by Nicholas Kapralov

После создания тикета одумался и смог избавиться от утечки памяти (теперь программа проходит и smoke test c valgrind'ом тоже), но ухудшилась ситуация с временем выполнения (иногда 15-20 секунд).

comment:2 Changed 6 years ago by Nicholas Kapralov

Насчёт проблемы с временем выполнения я погорячился, это был побочный эффект проверки valgrind, сама по себе программа укладывается в 5 секунд. Доделал вывод кодов в лексикографическом порядке.

comment:3 Changed 6 years ago by Филипп

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

Привет!

Замечания:

  1. Файл abababababababab.in сжимается хорошо, а цифры на экран выводятся подозрительные.
  2. Для хранения кодов символов предпочтительнее использовать vector<bool> -- контейнер, оптимизированный для нулей и единиц.
  3. Здесь можно сразу пользоваться возвращаемым значением метода read и неявно приводить его к bool (if (input.read(...)) { ... }):
        input.read((char *) &letter, sizeof(uint8_t));
        if (input.good()) { ... }
    
  4. Лучше использовать C++-style приведения типов через *_cast

И стилистическое:

  1. Предпочтительно у Node реализовать конструктор, чтобы не забывать проинициализировать чего-нибудь.

comment:4 Changed 6 years ago by Nicholas Kapralov

Большое спасибо за замечания!

  1. Исправил, судя по всему, ошибка была лишь в подсчёте размера сжатых данных, а не в процессе кодирования.
  2. Переделал.
  3. Поправил, так будет красивее, спасибо :)
  4. C *_cast'aми до этого не работал, постарался разобраться.
  5. Конструктор для Node реализовал.

Не совсем получилось уложиться в 60 часов, но я надеюсь, что у Вас будет возможность ещё раз взглянуть.

comment:5 Changed 6 years ago by Nicholas Kapralov

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

comment:6 Changed 6 years ago by Филипп

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

Привет!

Потести еще раз, пожалуйста, пример aaaaaaaaaaaaaaaa.in ("a" * 16) на циферки. Все остальное ок. Смоешь глянуть в течение 60 часов?

comment:7 Changed 6 years ago by Nicholas Kapralov

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

Ещё спасибо за замечания. Извиняюсь за невнимательность, эта та же ошибка, просто для кодирования исправил, а для декодирования - нет. Теперь значения корректны.

comment:8 Changed 6 years ago by Филипп

Resolution: задача сдана
Status: newclosed
Note: See TracTickets for help on using tickets.