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