stringtranslate.com

Вектор Илиффа

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

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

Вектор Илиффа для 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 , которые содержат факторы шага и значения смещения для индексов в каждом измерении.

Ссылки

Дальнейшее чтение