Opened 5 years ago

Closed 5 years ago

#295 closed ожидаются исправления (задача сдана)

WW #4

Reported by: Tarabonda German Owned by: Tarabonda German
Component: WW_mergesort Version: 2.0
Keywords: Cc:

Description


Change History (4)

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

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

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

  1. В заголовок mergesort.h надо подключить stddef.h для использования size_t.
  1. Разбейте main на три функции
  1. Не используйте variable-length arrays. Честно выделяйте память.
  1. mergesort буз рекурсии это хорошо. Но зачем вы тогда память в цикле выделяете?
  1. В функции сортировки следует вынести отдельно процедуру слияния.
  1. Используйте C11, чтобы объявлять переменные там, где они нужны, а не заранее сверху.
  1. переменные-счетчики в циклах имеют более сложное назначение, чем просто индексация в массиве. Это повод задуматься об их переименовании.
  1. Можно использовать memcpy

7.8/10

comment:2 Changed 5 years ago by Tarabonda German

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

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

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

1.
char **ar_str = malloc(elements * 100 * sizeof(char));

А откуда эта магическая константа?

argv[i + 2] что ж массив не сдвинули, а длину сдвинули?

3.

 size_t it1, it2;
 it1 = 0;
 it2 = 0;

Не разрывайте объявление и инициализацию, если не хотите иметь дело с UB.

4.
Ваш вариант реализации процедуры слияния пока лидирует по неочивидности, покрепленной однобуквенными параметрами.

Может все-таки merge(dst, src1, src1size, src2, src2size, elementsize, comparator) ?

5.
Счетчики так и остаются загадкой

  1. Выделение памяти может зафелиться не только в сортировке.

8.2 + 0.8

Last edited 5 years ago by Дмитрий Свиридкин (previous) (diff)

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

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