Обсуждение:Сортировка слиянием — различия между версиями
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 6: | Строка 6: | ||
--[[Участник:Андрей Шулаев|Андрей Шулаев]] 19:37, 5 февраля 2012 (MSK) | --[[Участник:Андрей Шулаев|Андрей Шулаев]] 19:37, 5 февраля 2012 (MSK) | ||
− | * <tex>lg</tex> | + | * '''Не <tex>lg</tex>, не <tex>log</tex>, а <tex>\log</tex>''' |
* "Сортировка слиянием — очень простой алгоритм сортировки." — очень плохое "определение". Лучше здесь написать, что он работает по принципу "разделяй и властвуй". | * "Сортировка слиянием — очень простой алгоритм сортировки." — очень плохое "определение". Лучше здесь написать, что он работает по принципу "разделяй и властвуй". | ||
* 2-х -> двух | * 2-х -> двух | ||
* Вместо ручной нумерации используйте нумерованный список | * Вместо ручной нумерации используйте нумерованный список | ||
* Раздел "Свойства" в том виде, в котором он сейчас есть, не нужен совершенно. Удалить или переписать | * Раздел "Свойства" в том виде, в котором он сейчас есть, не нужен совершенно. Удалить или переписать | ||
− | * Заголовки первого уровня для разделов вместо заголовков второго | + | * '''Заголовки первого уровня для разделов вместо заголовков второго уровня''' |
− | * Называть первый раздел "Сортировка слиянием" в статье "Сортировка слиянием" | + | * Называть первый раздел "Сортировка слиянием" в статье "Сортировка слиянием" — плохо |
* Слишком большие табы в псевдокоде | * Слишком большие табы в псевдокоде | ||
− | * Опять же, изображения взяты из другого источника без указания ссылки. | + | * '''Опять же, изображения взяты из другого источника без указания ссылки.''' |
* В текст пока пристально не вчитывался, перед следующей отправкой вычитать его пару раз. | * В текст пока пристально не вчитывался, перед следующей отправкой вычитать его пару раз. | ||
--[[Участник:Андрей Шулаев|Андрей Шулаев]] 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)
- Не , не , а
- "Сортировка слиянием — очень простой алгоритм сортировки." — очень плохое "определение". Лучше здесь написать, что он работает по принципу "разделяй и властвуй".
- 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)