Massiv eyni ölçülü elementləri yaddaşda ardıcıl saxlayır. Bu iki sadə xüsusiyyət massivin gücünü və zəifliyini müəyyən edir: indekslə müraciət ani olur, amma ortaya əlavə etmək bahalıdır. Dinamik massiv isə böyümə mexanizmi əlavə edir ki, append ucuz qalsın.

Ünvan düsturu `base + i * size` və tutumu 4-dən 8-ə böyüyən massiv
Ünvan düsturu base + i * size və tutumu 4-dən 8-ə böyüyən massiv

Ardıcıl yaddaş və O(1) indeksləmə

Əgər massiv 1000 ünvanından başlayırsa və hər element 8 bayt tutursa, a[5] 1000 + 5 * 8 = 1040 ünvanındadır. Düstur n-dən asılı deyil, ona görə a[0] və a[10**6] eyni sürətlə oxunur. Python list-i elementlərin özünü yox, onlara istinadları saxlayır, istinadlar isə eyni ölçülüdür, buna görə eyni qayda işləyir.

Ortaya əlavə və silmə: O(n)

Elementlər boşluqsuz yerləşdiyi üçün i mövqeyinə əlavə etmək üçün sağdakı hər elementi bir xana sürüşdürmək lazımdır. Silmədə isə əksinə, sola. Sürüşmələrin sayı n - i-dir: əvvələ əlavə ən pis (n), sona əlavə ən yaxşı (0) haldır.

python
def insert_at(a, i, x):
    a.append(None)                   # make room at the end
    moves = 0
    for j in range(len(a) - 1, i, -1):
        a[j] = a[j - 1]              # shift one step right
        moves += 1
    a[i] = x
    return moves