Сумма элементов массива
Сумма элементов массива — это результат сложения всех его элементов. Её находят одним последовательным проходом: по очереди просматривают элементы массива и добавляют каждый к текущему значению суммы.
Формула и алгоритм
Для массива с индексами от \(0\) до \(n-1\) программа выполняет действия: \(S := 0\); для каждого индекса \(i\) от \(0\) до \(n-1\) вычисляет \(S := S + a_i\). После окончания цикла в накопителе находится искомая сумма.
Для массива \([4, -2, 7]\) накопитель изменяется так: \(0 \rightarrow 4 \rightarrow 2 \rightarrow 9\). Поэтому сумма элементов равна \(9\). Фрагмент на Python: ```python
s = 0
for x in a:
s += x
```
При обычном суммировании нужен один итог — сумма всего массива. Префиксные суммы создают отдельный массив: его каждый элемент хранит сумму от начала массива до соответствующей позиции. Для одной общей суммы префиксный массив не требуется.
Какое начальное значение накопителя нужно для суммы массива, если в нём могут быть положительные и отрицательные числа?
Сложность алгоритма
Каждый элемент просматривается ровно один раз, поэтому время работы линейно: \(O(n)\). Дополнительная память постоянна: кроме самого массива, достаточно хранить накопитель и текущий элемент, то есть \(O(1)\).
Главное
- Начинайте накопитель суммы со значения \(0\).
- Последовательно прибавляйте к нему каждый элемент массива ровно один раз.
- Результат находится в накопителе после завершения цикла; сложность алгоритма — \(O(n)\) по времени и \(O(1)\) по дополнительной памяти.