DevPrep

Все темы › Алгоритмы и структуры данных

Асимптотика Array (массива)

Junior PRO

Суть

Array — динамический массив: непрерывный буфер с count и capacity, value-тип с copy-on-write. Отсюда вся асимптотика.

var a = [1, 2, 3]
a.append(4)               // O(1) амортизированно
a.insert(0, at: 0)        // O(n)
a.removeLast()            // O(1)
a.removeFirst()           // O(n)
_ = a.contains(3)         // O(n)
_ = a[1]                  // O(1)
var b = a                 // O(1): общий буфер
b.append(5)               // O(n): первая мутация копирует буфер (CoW)
a.reserveCapacity(1_000)  // чтобы append не реаллоцировал

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store