Opened 5 years ago
Closed 5 years ago
#312 closed ожидается проверка (задача сдана)
WW #4
Reported by: | lopatin.mikhail | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_make | Version: | 1.0 |
Keywords: | Cc: |
Description
Change History (3)
comment:1 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
comment:3 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
20 return strcmp(*(CONST char**)b, *(CONST char**)a);
mergesort.c
comp может быть нулевой?
elem_size может быть нулевой?
46 merge_sort((char*) arr, mid, elem_size, comp);
каст (char*) не нужен (на вход ожидается void*)
также не нужны касты в реализации merge, переменные и так типа char*
использование memcpy по условию запрещено:
Все операции, связанные с копированием памяти, надо реализовать самостоятельно.
кроме того, всю память можно было бы копировать разом, а не поэлементно;
здесь
35 for (size_t i = 0; i < elem * elem_size; i += elem_size) {
умножение стоило бы вынести наружу, чтобы гарантировать, что оно не будет происходить на каждой итерации цикла, да и вообще оно много раз используется в теле функции merge
Note: See
TracTickets for help on using
tickets.
Точно ли нужны все подключаемые заголовочные файлы?
Здесь намеренно такое форматирование?
Не работает на тестовом примере
Нет проверки контрактов функций (а их здесь больше, чем ненулевые указатели)
Реализацию merge можно упростить, если поменять условие в первом цикле на
while(!(I_left == mid && I_right == right))
это позволит избавиться от дублирования кода (внутри цикла нужно будет что-то поправить)