Введение

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

В компьютерном программировании вектор Илиффа, также известный как дисплей, — это структура данных, применяемая для реализации многомерных массивов.

Структура данных

Вектор Илиффа для n-мерного массива (где n ≥ 2) состоит из вектора (или одномерного массива) указателей на (n − 1)-мерный массив. Они часто используются для избежания дорогостоящих операций умножения при вычислении адреса элемента массива. Они также могут использоваться для реализации массивов неправильной формы, таких как треугольные массивы, треугольные матрицы и другие виды массивов нерегулярной формы. Структура данных названа в честь Джона К. Илиффа. К их недостаткам относится необходимость множественных последовательных косвенных переходов по указателям для доступа к элементу, а также дополнительная работа, требуемая для определения следующей строки в n-мерном массиве, чтобы оптимизирующий компилятор мог предварительно загрузить её. Оба этих фактора являются источником задержек в системах, где процессор значительно быстрее основной памяти. Вектор Илиффа для двумерного массива – это просто вектор указателей на векторы данных, то есть вектор Илиффа представляет столбцы массива, где каждый элемент столбца является указателем на вектор-строку. Многомерные массивы в языках, таких как Java, Python (многомерные списки), Ruby, Visual Basic NET, Perl, PHP, JavaScript, Objective C (при использовании NSArray, а не массива в стиле C), Swift и Atlas Autocode, реализованы как векторы Илиффа. Векторы Илиффа использовались для реализации разреженных многомерных массивов в OLAP-продукте Holos. Векторы Илиффа противопоставляются векторам допа, используемым в языках, таких как Fortran, которые содержат коэффициенты шага и значения смещения для индексов в каждом измерении.