Обсуждение:Реализация запроса в дереве отрезков снизу

Материал из Викиконспекты
Перейти к: навигация, поиск
Вроде все правильно, но очень мутно. Сделайте попонятнее, а?
Треш в форматировании, картинка налазит на код, категории и прочее. --Дмитрий Герасимов 20:21, 22 марта 2012 (GST)
realization -> ну это запрос называется, то есть query.
вместо operation(a, b) лучше пиши [math] a \circ b [/math], и напиши, что [math]\circ[/math] — та операция, над которой дерево отрезков строится.
Сейчас, в частности, мне не нравится, что рассматривается конкретный пример (минимум), надо разбирать абстрактную операцию.
то, что у тебя сейчас называется начальным значением, называется в математике нейтральным элементом (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 и прочие жирным.