Обсуждение:Реализация запроса в дереве отрезков снизу — различия между версиями
(sta) |
|||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
: {{tick|ticked=1}} Вроде все правильно, но очень мутно. Сделайте попонятнее, а? | : {{tick|ticked=1}} Вроде все правильно, но очень мутно. Сделайте попонятнее, а? | ||
: {{tick|ticked=1}} Треш в форматировании, картинка налазит на код, категории и прочее. --[[Участник:Dgerasimov|Дмитрий Герасимов]] 20:21, 22 марта 2012 (GST) | : {{tick|ticked=1}} Треш в форматировании, картинка налазит на код, категории и прочее. --[[Участник:Dgerasimov|Дмитрий Герасимов]] 20:21, 22 марта 2012 (GST) | ||
− | : {{tick}} realization -> ну это запрос называется, то есть query. | + | : {{tick|ticked=1}} realization -> ну это запрос называется, то есть query. |
− | : {{tick}} вместо operation(a, b) лучше пиши <tex> a \circ b </tex>, и напиши, что <tex>\circ</tex> — та операция, над которой дерево отрезков строится. | + | : {{tick|ticked=1}} вместо operation(a, b) лучше пиши <tex> a \circ b </tex>, и напиши, что <tex>\circ</tex> — та операция, над которой дерево отрезков строится. |
− | : {{tick}} Сейчас, в частности, мне не нравится, что рассматривается конкретный пример (минимум), надо разбирать абстрактную операцию. | + | : {{tick|ticked=1}} Сейчас, в частности, мне не нравится, что рассматривается конкретный пример (минимум), надо разбирать абстрактную операцию. |
:: то, что у тебя сейчас называется начальным значением, называется в математике нейтральным элементом (neutral) | :: то, что у тебя сейчас называется начальным значением, называется в математике нейтральным элементом (neutral) | ||
− | |||
: {{tick|ticked=1}}Добавить внутренних ссылок (на построение, на другую реализацию запроса и т. д.) | : {{tick|ticked=1}}Добавить внутренних ссылок (на построение, на другую реализацию запроса и т. д.) | ||
+ | : {{tick|ticked=1}} У тебя описана только последовательность действий, а почему она корректна, почему в одном случае мы обновим result, а в другом сразу перескочим к предку — нет. нужно чуть более подробное описание алгоритма. | ||
+ | :: ок, вроде понятно. | ||
+ | : {{tick}} В псевдокоде, кажется, немного треш. | ||
+ | :: {{tick}} индексацию в любом случае с 0, так просто принято. | ||
+ | :: {{tick|ticked=1}} if (left div 2) * 2 == left — мне кажется, или это просто проверка на четность? В этом случае, в частности, left — четное. И почему тогда left = (left + 1) / 2, если это то же, что left = left / 2? В общем, разберись и поаккуратнее обработай эти случаи. | ||
+ | :: {{tick|ticked=1}} Еще я могу ошибаться, но мне кажется, что if left == right result = result o data[left]; — что-то лишнее. Скорее всего, кажется, но на всякий случай проверь. | ||
+ | ::: а не, не лишнее, ок. | ||
+ | :: {{tick|ticked=1}} И выдели, пожалуйста, все ключевые слова вроде '''while''', '''if''' и прочие жирным. |
Текущая версия на 16:18, 6 июня 2012
- ☑ Вроде все правильно, но очень мутно. Сделайте попонятнее, а?
- ☑ Треш в форматировании, картинка налазит на код, категории и прочее. --Дмитрий Герасимов 20:21, 22 марта 2012 (GST)
- ☑ realization -> ну это запрос называется, то есть query.
- ☑ вместо operation(a, b) лучше пиши , и напиши, что — та операция, над которой дерево отрезков строится.
- ☑ Сейчас, в частности, мне не нравится, что рассматривается конкретный пример (минимум), надо разбирать абстрактную операцию.
- то, что у тебя сейчас называется начальным значением, называется в математике нейтральным элементом (neutral)
- ☑Добавить внутренних ссылок (на построение, на другую реализацию запроса и т. д.)
- ☑ У тебя описана только последовательность действий, а почему она корректна, почему в одном случае мы обновим result, а в другом сразу перескочим к предку — нет. нужно чуть более подробное описание алгоритма.
- ок, вроде понятно.
- ☐ В псевдокоде, кажется, немного треш.
- ☐ индексацию в любом случае с 0, так просто принято.
- ☑ if (left div 2) * 2 == left — мне кажется, или это просто проверка на четность? В этом случае, в частности, left — четное. И почему тогда left = (left + 1) / 2, если это то же, что left = left / 2? В общем, разберись и поаккуратнее обработай эти случаи.
- ☑ Еще я могу ошибаться, но мне кажется, что if left == right result = result o data[left]; — что-то лишнее. Скорее всего, кажется, но на всякий случай проверь.
- а не, не лишнее, ок.
- ☑ И выдели, пожалуйста, все ключевые слова вроде while, if и прочие жирным.