Обсуждение:Сортировка слиянием — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
 
(не показаны 2 промежуточные версии этого же участника)
Строка 17: Строка 17:
 
* В текст пока пристально не вчитывался, перед следующей отправкой вычитать его пару раз.
 
* В текст пока пристально не вчитывался, перед следующей отправкой вычитать его пару раз.
 
--[[Участник:Андрей Шулаев|Андрей Шулаев]] 02:20, 15 мая 2012 (GST)
 
--[[Участник:Андрей Шулаев|Андрей Шулаев]] 02:20, 15 мая 2012 (GST)
 +
 +
* Третья ссылка в источниках — битая
 +
* Зачем длинные комментарии в псевдокоде? Алгоритм описан до этого, в коде должен быть только код и комментарии при крайней необходимости
 +
* Кратные пробелы между лексемами в псевдокоде — исправить
 +
* Вообще, сам псевдокод написан довольно плохо. Merge — вроде как процедура, а вот sort — вроде как нет, хотя и вызывается как процедура. Написать псевдокод со следующими сигнатурами:
 +
** sort(array a, int l, int r) — сортировка подмассива a[l; r)
 +
** merge(array a, int l, int m, int r) — слияние подмассивов a[l; m) и a[m; r) в a[l; r)
 +
* Дефисы в тексте вместо тире!
 +
--[[Участник:Андрей Шулаев|Андрей Шулаев]] 02:36, 17 мая 2012 (GST)
 +
 +
* Длинные фразы, такие как "хороший пример использования принципа «разделяй и властвуй»", которые в неизменном виде присутствуют в перечисленных источниках, это очень плохо (о чём я неоднократно писал).
 +
* А ещё то, что сортировка слиянием — хороший пример принципа, плохо вписывается в "определение" сортировки слиянием.
 +
* Незачем ставить две ссылки на один и тот же источник
 +
* Всё ещё длинные комментарии в псевдокоде. Если нужны длинные комментарии, поместить их '''перед''' псевдокодом в виде обычного текста (перечислить цель используемых вспомогательных переменных и так далее). И, да, из-за длинных комментариев у меня конспект выглядит вот так: http://i45.tinypic.com/nvacdg.png
 +
* Кстати, а описанный алгоритм не соответствует псевдокоду. Раз уж так, то привести две версии алгоритма (с рекурсией / без рекурсии).
 +
* А, так тут всё ещё плагиат. Дальше не проверяю.
 +
--[[Участник:Андрей Шулаев|Андрей Шулаев]] 21:36, 20 мая 2012 (GST)
 +
 +
Зачем в иллюстрации процедуры слияния нужны элементы 7 8 2 4, с которыми ничего не происходит? Их надо убрать.
 +
И вообще, поскольку иллюстрацию всё равно надо будет перерисовывать, то предлагаю каждый кадр сделать вида:
 +
A 1 6 8 | 9
 +
B 2 | 10 11
 +
result 1 2 6 8
 +
При этом просмотренные элементы массивов A и B помечать серым цветом. Обозначать разными цветами элементы массивов A и B — хорошо, только лучше красить разными цветами цифры, а не непонятные рамочки.
 +
Чтобы рисунок не слишком сильно вытягивался в высоту, можно сделать расположить кадры в две колонки.
 +
* Я, видимо, не заметил появления в какой-то момент обозначения sizeof(A) для обозначения длины массива. Обозначение плохое, в тексте можно использовать |A|, а в коде A.length или A.size
 +
* merge это не процедура слияния двух массивов, а процедура слияния двух частей одного массива
 +
* Аналогично пропустил появление в коде тернарного оператора, вот от этого точно надо избавляться.
 +
--[[Участник:Андрей Шулаев|Андрей Шулаев]] 12:52, 9 июня 2012 (GST)

Текущая версия на 11:52, 9 июня 2012

  • Копипаста с википедии (как минимум, частично — скопированные участки переписать)
  • Указать источник анимации или убрать
  • Псевдокод так себе (Mergesort, MergeSort на соседних строчках, однобуквенные имена переменных)
  • В оценке сложности все формулы занести в tex
  • Несоответствия с правилами оформления (тире и тому подобное)

--Андрей Шулаев 19:37, 5 февраля 2012 (MSK)

  • Не [math]lg[/math], не [math]log[/math], а [math]\log[/math]
  • "Сортировка слиянием — очень простой алгоритм сортировки." — очень плохое "определение". Лучше здесь написать, что он работает по принципу "разделяй и властвуй".
  • 2-х -> двух
  • Вместо ручной нумерации используйте нумерованный список
  • Раздел "Свойства" в том виде, в котором он сейчас есть, не нужен совершенно. Удалить или переписать
  • Заголовки первого уровня для разделов вместо заголовков второго уровня
  • Называть первый раздел "Сортировка слиянием" в статье "Сортировка слиянием" — плохо
  • Слишком большие табы в псевдокоде
  • Опять же, изображения взяты из другого источника без указания ссылки.
  • В текст пока пристально не вчитывался, перед следующей отправкой вычитать его пару раз.

--Андрей Шулаев 02:20, 15 мая 2012 (GST)

  • Третья ссылка в источниках — битая
  • Зачем длинные комментарии в псевдокоде? Алгоритм описан до этого, в коде должен быть только код и комментарии при крайней необходимости
  • Кратные пробелы между лексемами в псевдокоде — исправить
  • Вообще, сам псевдокод написан довольно плохо. Merge — вроде как процедура, а вот sort — вроде как нет, хотя и вызывается как процедура. Написать псевдокод со следующими сигнатурами:
    • sort(array a, int l, int r) — сортировка подмассива a[l; r)
    • merge(array a, int l, int m, int r) — слияние подмассивов a[l; m) и a[m; r) в a[l; r)
  • Дефисы в тексте вместо тире!

--Андрей Шулаев 02:36, 17 мая 2012 (GST)

  • Длинные фразы, такие как "хороший пример использования принципа «разделяй и властвуй»", которые в неизменном виде присутствуют в перечисленных источниках, это очень плохо (о чём я неоднократно писал).
  • А ещё то, что сортировка слиянием — хороший пример принципа, плохо вписывается в "определение" сортировки слиянием.
  • Незачем ставить две ссылки на один и тот же источник
  • Всё ещё длинные комментарии в псевдокоде. Если нужны длинные комментарии, поместить их перед псевдокодом в виде обычного текста (перечислить цель используемых вспомогательных переменных и так далее). И, да, из-за длинных комментариев у меня конспект выглядит вот так: http://i45.tinypic.com/nvacdg.png
  • Кстати, а описанный алгоритм не соответствует псевдокоду. Раз уж так, то привести две версии алгоритма (с рекурсией / без рекурсии).
  • А, так тут всё ещё плагиат. Дальше не проверяю.

--Андрей Шулаев 21:36, 20 мая 2012 (GST)

Зачем в иллюстрации процедуры слияния нужны элементы 7 8 2 4, с которыми ничего не происходит? Их надо убрать. И вообще, поскольку иллюстрацию всё равно надо будет перерисовывать, то предлагаю каждый кадр сделать вида:

A 1 6 8 | 9
B 2 | 10 11
result 1 2 6 8

При этом просмотренные элементы массивов A и B помечать серым цветом. Обозначать разными цветами элементы массивов A и B — хорошо, только лучше красить разными цветами цифры, а не непонятные рамочки. Чтобы рисунок не слишком сильно вытягивался в высоту, можно сделать расположить кадры в две колонки.

  • Я, видимо, не заметил появления в какой-то момент обозначения sizeof(A) для обозначения длины массива. Обозначение плохое, в тексте можно использовать |A|, а в коде A.length или A.size
  • merge это не процедура слияния двух массивов, а процедура слияния двух частей одного массива
  • Аналогично пропустил появление в коде тернарного оператора, вот от этого точно надо избавляться.

--Андрей Шулаев 12:52, 9 июня 2012 (GST)