Opened 5 years ago

Closed 5 years ago

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

WW #4

Reported by: Ruslan Salkaev Owned by: Дмитрий Свиридкин
Component: WW_mergesort Version: 3.0
Keywords: Cc:

Description


Change History (5)

comment:1 Changed 5 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to Ruslan Salkaev
Type: ожидается проверкаожидаются исправления

Тесты пройдены.

1.

#include <stddef.h>

#ifndef MERGESORT_H_
#define MERGESORT_H_
...

Список инклудов тоже лучше размешать под include_guard'ом

  1. Передавайте в сортирующие функции сразу сдвинутый массив аргументов, зачем в трех местах одно и то же делать?
  1. Не жадничайте с вспомогательными переменными: выражения вида (char *) array + element_size * (elements / 2) встречаются слишком часто. Их лучше вытащить в отдельную переменную.

Компилятор сам в состоянии ее потом выкинуть при оптимизации.

  1. Не стоит использовать сдвиги лишь для деления/умножения на степени двойки. Компилятор заиспользует их за вас, а в коде они только ухудшают читаемость.
  1. Выделять память на каждом уровне рекурсии -- очень дорогое удовольствие: выделение памяти -- медленная операция. Попробуйте обойтись одним выделением.

8.5

comment:2 Changed 5 years ago by Ruslan Salkaev

Owner: changed from Ruslan Salkaev to Дмитрий Свиридкин
Type: ожидаются исправленияожидается проверка
Version: 1.02.0

Попробовал исправить замечания

comment:3 Changed 5 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to Ruslan Salkaev
Type: ожидается проверкаожидаются исправления

А сигнатуру mergesort зачем поменяли? От этого "пользовательский" (то что в main) код тоже пришлось менять. Оптимизации внутренностей не должны менять интерфейс, предоставленный пользователю.

8.9/10

comment:4 Changed 5 years ago by Ruslan Salkaev

Owner: changed from Ruslan Salkaev to Дмитрий Свиридкин
Type: ожидаются исправленияожидается проверка
Version: 2.03.0

Исправил

comment:5 Changed 5 years ago by Дмитрий Свиридкин

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

Не нужно экспортировать внутренности (указывать вспомогательную функцию в заголовочном файле).

9.5

Note: See TracTickets for help on using tickets.