Пространственная сложность | Измерьте производительность вашего кода: DSA 002

В своей предыдущей статье я писал о временной сложности. Способ измерения кода по отношению к растущему размеру входных данных.

Временная сложность — это соотношение между размером входных данных и временем работы.

Подумайте об этом

У вас в телефоне, очевидно, есть приложения. Скорее всего, вы предпочитаете те, которые требуют меньше времени для загрузки данных и занимают меньше места. Фактор, который используется для измерения времени, относится к временной сложности. Но как насчет пространства? Как мы измеряем пространство, используемое кодом?

Пространственная сложность

Соотношение между размером входных данных и объемом памяти, потребляемой вашей системой.

Если вы хотите, чтобы ваш код был оптимизирован, он должен занимать меньше времени и меньше места. Таким образом, здесь на помощь приходит пространственная сложность, потому что это способ измерить, сколько места займет ваш код.

Расчет сложности пространства

Пространство, занимаемое кодом, зависит от количества используемых переменных. Чем больше переменных, тем больше места используется.

Объем памяти, потребляемой кодом, прямо пропорционален количеству назначенных переменных.

sum = 0
i = 0
while (i < 24):
    sum += i
    i += 1
print(sum)
Вход в полноэкранный режим Выйти из полноэкранного режима

Здесь есть 2 переменные, которые мы присваиваем памяти: i и sum. Теперь, независимо от увеличения значения суммы, память, используемая одной переменной, будет одинаковой. Таким образом, пространственная сложность этого кода будет равна O(1).

Теперь рассмотрим пример с массивами. По сути, это структура данных, которая хранит список элементов. Более подробно о массивах мы поговорим позже.

def create_array(n):
    a = []
    for i in range(n):
        a.append(i)
    return a
Вход в полноэкранный режим Выйти из полноэкранного режима

В этой функции мы берем на вход целое число n. Затем мы создаем массив. С помощью цикла мы сохраняем в массиве числа от 0 до n-1. Затем мы возвращаем его. Итак, по сути, мы генерируем серию чисел и сохраняем ее в массиве. Здесь, с увеличением размера входных данных, пространство, используемое кодом, также увеличивается. Таким образом, пространственная сложность для этого кода равна O(n).

Вы можете проверить размер здесь:

sys.getsizeof() выдает размер конкретной функции, класса, переменной и т.д. в python.

Я очень надеюсь, что вы поняли, если нет, то не стесняйтесь критиковать в разделе комментариев. Это нормально критиковать, если я потратил ваше драгоценное время. Также если у вас есть какие-либо сомнения, не стесняйтесь задать их в разделе комментариев.

Оцените статью
devanswers.ru
Добавить комментарий