На месте, строго на месте, и o (1) алгоритмы пространстваPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 На месте, строго на месте, и o (1) алгоритмы пространства

Сообщение Anonymous »

Как можно классифицировать алгоритм, подобный следующему: < /p>

Код: Выделить всё

def foo(arr):
# original_len = len(arr)
tmp = []
while arr:
tmp.append(arr.pop())
while tmp:
arr.append(tmp.pop())
Определения становятся в виде сбивающих с толку, потому что теоретически, в любой момент Len (arr) + len (tmp) ~ = riginal_len , поэтому я не использую дополнительную память вне дополнительного объекта списка, который является постоянным. Но вот некоторые из моих мыслей: < /p>

Мне действительно нужна дополнительная память, как если бы у меня было только 32 ведра памяти, последовательно, если исходный массив требует 32 ведра, а затем, когда я помесчу 31 -й ведро в новый список после того, как я понадобится 33 -й, я понадобится 33 -й ведро, в то время как 31 -й бакрот останется пустым; на месте, так как это буквально изменяет данные на месте, но, возможно, не строго на месте, если это различие существует < /li>
Возможно, тот факт, что я просто распределяю новый список, уже исключающий его строго на месте, но если бы у меня было больше контроля над память На месте? игнорируются.


Подробнее здесь: https://stackoverflow.com/questions/797 ... algorithms
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»