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

Материал из Викиконспекты
Перейти к: навигация, поиск
(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}}Индексация элементов должна быть с 0.
 
 
: {{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) лучше пиши [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 и прочие жирным.