Back to questions
Junior — Middle
55
Объясните механизм хранения и динамического расширения массива в программировании.
Answer from AI
sobes.tech AI
Массивы в программировании обычно реализуются как блоки памяти фиксированного размера. При добавлении элементов, если массив заполнен, происходит динамическое расширение — выделяется новый блок памяти большего размера, и существующие элементы копируются туда.
Механизм динамического расширения:
- Изначально выделяется массив определенного размера.
- При достижении предела добавления элементов создается новый массив, обычно в 2 раза больше.
- Содержимое старого массива копируется в новый.
- Старый массив освобождается.
Это позволяет эффективно управлять памятью, минимизируя количество копирований при росте массива.
Пример на Python (упрощенная иллюстрация):
class DynamicArray:
def __init__(self):
self.capacity = 1
self.size = 0
self.array = [None] * self.capacity
def append(self, item):
if self.size == self.capacity:
self._resize(2 * self.capacity)
self.array[self.size] = item
self.size += 1
def _resize(self, new_capacity):
new_array = [None] * new_capacity
for i in range(self.size):
new_array[i] = self.array[i]
self.array = new_array
self.capacity = new_capacity