какой размер мы считаем указателем 2d массива в пространстве сложности? - PullRequest
0 голосов
/ 28 августа 2018

enter image description here

Это код, приведенный в моей книге по алгоритмам. Нам нужно вычислить сложность его пространства.

это ответ, данный -

enter image description here

Пространство сложность равно S=C+Sp, и в этом случае Sp равно нулю, поскольку код не зависит от n. Но я хотел вычислить часть кода C, и в этом случае это будет 5*2bytes=10 bytes с учетом a,x,n,0 and -1.

Итак, мой вопрос: что такое C, если a является 2d-матрицей, мы рассматриваем его как 2 bytes только как в случае 1d-массива или принимаем его как 4 байта?

1 Ответ

0 голосов
/ 28 августа 2018

Указатели и целые числа не более 16 бит с середины восьмидесятых, поэтому мне интересно, что вы имеете в виду с вашими 2 байтами.

Также обратите внимание, что ваш учет пространства немного странный. Вы не учитываете переменную i, но подсчитываете буквальные константы, которые обычно появляются как непосредственные аргументы в коде сборки.

В любом случае, на 32-битной машине все адреса (и указатели) представлены 4 байтами, а дополнительный учет размеров массива выполняется компилятором и жестко запрограммирован в сборку.

На 64-битной машине считать 8 байтов на указатель и 4 байта на целое.

...