Обсуждение:Сортировка слиянием
Версия от 11:52, 9 июня 2012; Андрей Шулаев (обсуждение | вклад)
- Копипаста с википедии (как минимум, частично — скопированные участки переписать)
- Указать источник анимации или убрать
- Псевдокод так себе (Mergesort, MergeSort на соседних строчках, однобуквенные имена переменных)
- В оценке сложности все формулы занести в tex
- Несоответствия с правилами оформления (тире и тому подобное)
--Андрей Шулаев 19:37, 5 февраля 2012 (MSK)
- Не , не , а
- "Сортировка слиянием — очень простой алгоритм сортировки." — очень плохое "определение". Лучше здесь написать, что он работает по принципу "разделяй и властвуй".
- 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)