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

Материал из Викиконспекты
Перейти к: навигация, поиск
(sta)
 
Строка 5: Строка 5:
 
: {{tick|ticked=1}} Сейчас, в частности, мне не нравится, что рассматривается конкретный пример (минимум), надо разбирать абстрактную операцию.
 
: {{tick|ticked=1}} Сейчас, в частности, мне не нравится, что рассматривается конкретный пример (минимум), надо разбирать абстрактную операцию.
 
:: то, что у тебя сейчас называется начальным значением, называется в математике нейтральным элементом (neutral)
 
:: то, что у тебя сейчас называется начальным значением, называется в математике нейтральным элементом (neutral)
: {{tick|ticked=1}}Индексация элементов должна быть с 0.
 
 
: {{tick|ticked=1}}Добавить внутренних ссылок (на построение, на другую реализацию запроса и т. д.)
 
: {{tick|ticked=1}}Добавить внутренних ссылок (на построение, на другую реализацию запроса и т. д.)
: {{tick}} У тебя описана только последовательность действий, а почему она корректна, почему в одном случае мы обновим result, а в другом сразу перескочим к предку — нет. нужно чуть более подробное описание алгоритма.  
+
: {{tick|ticked=1}} У тебя описана только последовательность действий, а почему она корректна, почему в одном случае мы обновим result, а в другом сразу перескочим к предку — нет. нужно чуть более подробное описание алгоритма.
 +
:: ок, вроде понятно.  
 
: {{tick}} В псевдокоде, кажется, немного треш.  
 
: {{tick}} В псевдокоде, кажется, немного треш.  
:: if (left div 2) * 2 == left — мне кажется, или это просто проверка на четность? В этом случае, в частности, left — четное. И почему тогда left = (left + 1) / 2, если это то же, что left = left / 2? В общем, разберись и поаккуратнее обработай эти случаи.
+
:: {{tick}} индексацию в любом случае с 0, так просто принято.
:: Еще я могу ошибаться, но мне кажется, что if left == right result = result o data[left]; — что-то лишнее. Скорее всего, кажется, но на всякий случай проверь.
+
:: {{tick|ticked=1}} if (left div 2) * 2 == left — мне кажется, или это просто проверка на четность? В этом случае, в частности, left — четное. И почему тогда left = (left + 1) / 2, если это то же, что left = left / 2? В общем, разберись и поаккуратнее обработай эти случаи.
:: И выдели, пожалуйста, все ключевые слова вроде '''while''', '''if''' и прочие жирным.
+
:: {{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) лучше пиши [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 и прочие жирным.