Адресация элементов с помощью векторов Айлиффа

Из выше приведенных формул видно, что вычисление адреса эле-

мента многомерного массива может потребовать много времени, пос-

кольку при этом должны выполняться операции сложения и умножения,

число которых пропорционально размерности массива. Операцию умно-

жения можно исключить, если применять следующий метод.

Основной дескриптор Вектор Айлиффа

первого уровня

┌──────────────┐ ┌─────>┌────────────────┐

│ . │ │ │ │ 0

│ . │ │ ├────────────────┤

│ . │ │ │ │ 1

├──────────────┤ │ ├────────────────┤

│ (B) ───┼─────┘ │ │ 2

├──────────────┤ ├────────────────┤ j1

│ . │ │ │ 3

│ . │ ├────────────────┤

│ . │ ┌───────┼── │ 4

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

│ ┌┼── │ 5

│ │└────────────────┘

Векторы Айлиффа │ └──────────────────────┐

второго уровня │ │

┌──────────────┐ │ ┌────────────────┐ │

┌───┼── │ -1 │ ┌──┼── │ -1 │

│ ├──────────────┤ │ │ ├────────────────┤ │

│┌──┼── │ 0<─┘ │┌─┼── │ 0<─┘ j2

││ ├──────────────┤ ││ ├────────────────┤

││┌─┼── │ 1 ││┌┼── │ 1

│││ └──────────────┘ │││└────────────────┘

││└────────────────┐ ││└─────────────────┐

│└───────┐ │ │└────────┐ │

v v v v v v

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐

│B(4,│B(4,│B(4,│B(4,│B(4,│B(4,│B(5,│B(5,│B(5,│B(5,│B(5,│B(5,│

│ -1,│ -1,│ 0,│ 0,│ 1,│ 1,│ -1,│ -1,│ 0,│ 0,│ 1,│ 1,│

│ 0)│ 1)│ 0)│ 1)│ 0)│ 1)│ 0)│ 1)│ 0)│ 1)│ 0)│ 1)│

└────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘

0 1 0 1 0 1 0 1 0 1 0 1

Рис. 3.4. Представление массивов с помощью векторов Айлиффа

Для массива любой мерности формируется набор дескрипторов:

основного и несколько уровней вспомогательных дескрипторов, назы-

ваемых векторами Айлиффа. Каждый вектор Айлиффа определённого

уровня содержит указатель на нулевые компоненты векторов Айлиффа

следующего, более низкого уровня, а векторы Айлиффа самого нижне-

го уровня содержат указатели групп элементов отображаемого масси-

ва. Основной дескриптор массива хранит указатель вектора Айлиффа

первого уровня. При такой организации к произвольному элементу

В(j1,j2,...,jn) многомерного массива можно обратиться пройдя по

цепочке от основного дескриптора через соответствующие компоненты

векторов Айлиффа.

На рис. 3.4 приведена физическая структура трёхмерного мас-

сива В[4..5,-1..1,0..1], представленная по методу Айлиффа. Из

этого рисунка видно, что метод Айлиффа, увеличивая скорость дос-

тупа к элементам массива, приводит в то же время к увеличению

суммарного объёма памяти, требуемого для представления массива. В

этом заключается основной недостаток представления массивов с по-

мощью векторов Айлиффа.