Change History (4)

comment:1 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Никита Усольцев
Type: ожидается проверкаожидаются исправления

Корректность:

  1. Падает на пустых массивах.
  2. Выводит лишние пробелы.
  3. merge не нужен за пределами mergesort.c => его не должно быть в mergesort.h
  4. memcpy — это хорошо, но в задании надо самостоятельно копировать все байты.

По стилю:

  1. Арифметика с void* — это расширение GCC, избавьтесь.
  2. Либо #pragma once, либо через #ifndef — выберите что-то одно.
  3. UNTITLED1 — лишнее.
  4. Сделайте в конце main ветку else с assert(!"Unknown type to sort") — если нам передали неизвестный тип, надо об этом громко сообщить, обрушив assert.
  5. Не называйте переменные с большой буквы. В Си принят snake_case.
  6. A — слишком короткое название для такой важной переменной, лучше arr.
  7. merge: названия r и Right путаются.
  8. merge: оставьте только один цикл и один if.
  9. merge: многовато переменных. Наверняка половину можно выкинуть.

comment:2 Changed 5 years ago by Никита Усольцев

Owner: changed from Никита Усольцев to Egor Suvorov
Type: ожидаются исправленияожидается проверка
Version: 2.03.0

comment:3 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Никита Усольцев
Type: ожидается проверкаожидаются исправления

Корректность 6/7:

  1. memcpy - это хорошо, но задание требует самостоятельного копирования всех элементов. Реализуйте руками.

Стиль 2/3:

  1. Разбирайте argc - 2 одним ифом в начале, а не в каждом отдельном случае.
  2. Лучше напишите вывод элементов через пробел в цикле for
  3. Не strcmp() == 0, а !strcmp().
  4. Пробелы между if и (.
  5. temp --> out.
  6. Лучше elements / 2 передавать в merge из mergesort (типа "количество элементов слева"), чтобы не дублировались вычисления и можно было менять округления в одном месте.
  7. Лучше инициализировать переменные в merge в порядке: middle, last, left, right, out.
  8. merge можно написать в один цикл for и один if внутри: делаете цикл по выходному массиву, а внутри ифом выбираете, откуда брать очередной элемент.

Очень красивый merge чисто на указателях, +1 балл бонусом за стиль.

comment:4 Changed 5 years ago by Egor Suvorov

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

Вроде так и осталось.

Захотите дорешать — переоткрывайте тикет.

Note: See TracTickets for help on using tickets.