Временная сложность алгоритма List.AddRange()

279
27 января 2017, 04:28

Из названия понятна суть проблемы. Интересует какова временная сложность алгоритма метода AddRange() списка в C#?

Answer 1

Из документации:

Если List<T> может вместить новые элементы без увеличения Capacity, этот метод требует O(n) операций, где n — количество добавляемых элементов. Если для размещения новых элементов приходится увеличивать емкость, этот метод становится O(n + m) операций, где n — количество элементов для добавления и mCount.

Answer 2

Если при добавлении в список его вместимость capacity не нуждается в увелечении, то O(n)

В противном случае O(n + m), где n - количество добавленных элементов и m длина списка перед добавлением

MSDN

READ ALSO