Обработка математики: 100%
 

printЗанятие 7

printСтруктуры данных

Если нужно находить суммы в часто изменяемом массиве, то можно использовать дерево частичных сумм, которое строится следующим образом. Для каждой пары элементов вычисляем их сумму и помещаем результат в массив более высокого уровня, аналогично поступаем для получившегося массива, пока не получим единственное значение. Желательно, чтобы размер массива был степенью 2, для этого можно дополнить массив нулями.
          57
        /    \
     49       8
    /  \     /  \
  20    29  8    0
 / \   / \ / \  / \
13 7  25 4 8 -  - -
Время изменения такого дерева O(log2 N), а время вычисления суммы O(log2 N).
loading