333
правки
Изменения
→Алгоритм
==Алгоритм==
[[Файл:123.jpg|right|380px|thumb|Пример дерева отрезков для вычисления сумм]]
Запустим рекурсивную процедуру от всего отрезка(то есть от корневой вершины).
*если Если текущий отрезок не пересекается с искомым, то возвращаем нулевое значение.''Например'':текущий <tex>[1..2]</tex>, а искомый <tex>[3 .. 4]</tex>;
* Текущий отрезок совпадает, то возвращаем значение в текущей вершине.''Например'': текущий и искомый <tex>[12..2]</tex>, а искомый <tex>[3 .. 4]</tex>;
*текущий отрезок совпадает, то возвращаем значение в вершине.''Например'': текущий и искомый <tex>[2..3]</tex>; Далее Иначе переходим к рекурсивным вызовамрезультат функции функций от текущего отрезка и искомого = детей вершины. При этом сумма на текущем отрезке равна сумме результатов функций, запущенных от детей текущего отрезка и искомого.
==Пример==