Обсуждение:Задача о наибольшей возрастающей подпоследовательности — различия между версиями
Строка 1: | Строка 1: | ||
: {{tick | ticked=1}} оформить номрально разделы и добавить содержание | : {{tick | ticked=1}} оформить номрально разделы и добавить содержание | ||
: {{tick | ticked=1}} Оформить псевдокод в соответствии с правилами, а то там куча левых операторов, For вместо for и т.д. | : {{tick | ticked=1}} Оформить псевдокод в соответствии с правилами, а то там куча левых операторов, For вместо for и т.д. | ||
− | : {{tick}} Раздел «Постановка задачи» не нужен, итак понятно что в статье про задачу главная цель — решить задачу. Просто поместить постановку задачи в шапку. | + | : {{tick | ticked=1}} Раздел «Постановка задачи» не нужен, итак понятно что в статье про задачу главная цель — решить задачу. Просто поместить постановку задачи в шапку. |
− | : {{tick | + | : {{tick | ticked=1}} Не надо описывать ввод данных и вывод данных. Оформляй псевдокод как функцию, принимающую входные данные и возвращающую результат. Если она выдает наибольшую возрастающую подпоследовательность, то и возвращай vector<int>, или int[], например, а не выводи. |
− | + | : {{tick | ticked=1}} Разделы первого уровня обособляются как == Раздел ==, а не как ==== Раздел ==== | |
− | : {{tick}} | + | : {{tick | ticked=1}} Почему наибольшая возрастающая последовательность в псевдокоде называется lsa? |
− | : | + | |
− | : | + | : {{tick}} Про оформление псевдокода(правила его оформелния находятся тут [[Обсуждение:Дискретная математика и алгоритмы]]) : |
− | : {{tick}} | + | :* теперь, когда твой код — функция, делай отступ в 4 пробела, как и принято. Тогда и фигурные скобки не понадобятся. Кстати, у блока кода в цикле for тоже должен быть отступ в 4 пробела относительно оператора for, а не восемь. Вообще лучше написать сначала код в каком-нибудь notepad++, а потом сюда вставлять — тогда не придётся ручками считать пробелы. |
+ | :* пишем <code>vector<int></code> как это принято — без пробела перед шаблонными аргументами. | ||
+ | :* Читай правила оформления псевдокода про круглые скобки вокруг внешнего условия for, if и т.д. | ||
+ | :* Опять же, не пиши в псевдокоде лишние детали, относящиеся к конскретному языку программирования. Зачем писать revese(v.begin(), v.end()). Человек, не знакомый с C++, это не поймёт, лучше просто reverse(v), а лучше v.reverse(). | ||
+ | |||
+ | : {{tick}} В псевдокоде за n^2 всё ещё какой-то треш. Ты подсчитываешь динамику в том же входном массиве '''a'''. А d у тебя используется только при восстановлении НВП. А в описании алгоритма вообще используется x. Массив динамики у тебя с 0-индексацией, а база — в первом элементе. В общем, перечитай внимательно всё и напиши нормальный псевдокод. | ||
+ | --[[Участник:Dgerasimov|Дмитрий Герасимов]] 22:45, 2 декабря 2011 (MSK) | ||
: Алгоритм за n log n проверю завтра. --[[Участник:Dgerasimov|Дмитрий Герасимов]] 10:22, 1 декабря 2011 (MSK) | : Алгоритм за n log n проверю завтра. --[[Участник:Dgerasimov|Дмитрий Герасимов]] 10:22, 1 декабря 2011 (MSK) |
Версия 22:45, 2 декабря 2011
- ☑ оформить номрально разделы и добавить содержание
- ☑ Оформить псевдокод в соответствии с правилами, а то там куча левых операторов, For вместо for и т.д.
- ☑ Раздел «Постановка задачи» не нужен, итак понятно что в статье про задачу главная цель — решить задачу. Просто поместить постановку задачи в шапку.
- ☑ Не надо описывать ввод данных и вывод данных. Оформляй псевдокод как функцию, принимающую входные данные и возвращающую результат. Если она выдает наибольшую возрастающую подпоследовательность, то и возвращай vector<int>, или int[], например, а не выводи.
- ☑ Разделы первого уровня обособляются как == Раздел ==, а не как ==== Раздел ====
- ☑ Почему наибольшая возрастающая последовательность в псевдокоде называется lsa?
- ☐ Про оформление псевдокода(правила его оформелния находятся тут Обсуждение:Дискретная математика и алгоритмы) :
- теперь, когда твой код — функция, делай отступ в 4 пробела, как и принято. Тогда и фигурные скобки не понадобятся. Кстати, у блока кода в цикле for тоже должен быть отступ в 4 пробела относительно оператора for, а не восемь. Вообще лучше написать сначала код в каком-нибудь notepad++, а потом сюда вставлять — тогда не придётся ручками считать пробелы.
- пишем
vector<int>
как это принято — без пробела перед шаблонными аргументами. - Читай правила оформления псевдокода про круглые скобки вокруг внешнего условия for, if и т.д.
- Опять же, не пиши в псевдокоде лишние детали, относящиеся к конскретному языку программирования. Зачем писать revese(v.begin(), v.end()). Человек, не знакомый с C++, это не поймёт, лучше просто reverse(v), а лучше v.reverse().
- ☐ В псевдокоде за n^2 всё ещё какой-то треш. Ты подсчитываешь динамику в том же входном массиве a. А d у тебя используется только при восстановлении НВП. А в описании алгоритма вообще используется x. Массив динамики у тебя с 0-индексацией, а база — в первом элементе. В общем, перечитай внимательно всё и напиши нормальный псевдокод.
--Дмитрий Герасимов 22:45, 2 декабря 2011 (MSK)
- Алгоритм за n log n проверю завтра. --Дмитрий Герасимов 10:22, 1 декабря 2011 (MSK)
- ☐ В разделе про алгоритм за треш и муть. Зачем-то написано про нестрогое возрастание, хотя в определении LIS оно строгое, в псевдокоде имена не соотвествуют друг другу. Лучше вообще переписать его и псевдокод заново.
- ☐ для обоих алгоритмов написать псевдокоды восстановления LIS. --Дмитрий Герасимов 10:40, 15 октября 2011 (MSD)