Реферат: Распределение памяти

в последовательных ячейках области данных в порядке возрастания

или убывания адресов. Порядок зависит от машины и ее системы

команд.

Мы предполагаем, что используется стандартный возрастающий

порядок, т. е. элементы массива, определенного описанием

ARRAY А [1:10], размещаются в порядке А [1], А [2], ..., А [10].

Матрицы

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

Обычный способ состоит в хранении их в области данных по строкам

в порядке возрастания, т. е. ( для массива, описанного как

ARRAY А [1:M, 1:N], в порядке

А [1, 1], А [1, 2], ..., А [1, N],

А [2, 1], А [2, 2], ..., А [2, N],

...

А [M, 1], А [M, 2], ..., А [M, N].

Вид последовательности показывает, что элемент А[i, j] находится

в ячейке с адресом ADDRESS ( A[1, 1] ) + (i-1)*N + (j-1) который

можно записать так: ( ADDRESS ( A[1, 1] ) - N - 1 ) + ( i*N + j )

Первое слагаемое является константой, и его требуется вычислить

только один раз. Таким образом, для определения адреса А[i, j]

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

Второй метод состоит в том, что выделяется отдельная область

данных для каждой строки и имеется вектор указателей для этих

областей данных. Элементы каждой строки размещаются в соседних

ячейках в порядке возрастания. Так, описание ARRAY А [1:M, 1:N]

порождает

┌────────────────────────┐ ┌─────────────────────┐

│ Указатель на строку 1 ├─────────┤ A[1, 1] ... A[1, N] │

├────────────────────────┤ └─────────────────────┘

К-во Просмотров: 809
Бесплатно скачать Реферат: Распределение памяти