En programación informática , un vector de Iliffe , también conocido como visualización , es una estructura de datos utilizada para implementar matrices multidimensionales .
Un vector de Iliffe para una matriz n -dimensional (donde n ≥ 2) consiste en un vector (o matriz unidimensional) de punteros a una matriz ( n − 1)-dimensional. A menudo se utilizan para evitar la necesidad de costosas operaciones de multiplicación al realizar el cálculo de direcciones en un elemento de la matriz. También se pueden utilizar para implementar matrices irregulares , como matrices triangulares , matrices triangulares y otros tipos de matrices de forma irregular. La estructura de datos recibe su nombre de John K. Iliffe .
Entre sus desventajas se incluyen la necesidad de múltiples indirecciones de punteros encadenados para acceder a un elemento y el trabajo adicional que se requiere para determinar la siguiente fila en una matriz n -dimensional para permitir que un compilador optimizador la busque con anterioridad. Ambas son una fuente de demoras en sistemas donde la CPU es significativamente más rápida que la memoria principal.
El vector de Iliffe para una matriz bidimensional es simplemente un vector de punteros a vectores de datos, es decir, el vector de Iliffe representa las columnas de una matriz donde cada elemento de columna es un puntero a un vector de fila.
Las matrices multidimensionales en lenguajes como Java , Python (listas multidimensionales), Ruby , Visual Basic .NET , Perl , PHP , JavaScript , Objective-C (cuando se utiliza NSArray, no una matriz de estilo C con filas principales ), Swift y Atlas Autocode se implementan como vectores Iliffe. Los vectores Iliffe se utilizaron para implementar matrices multidimensionales dispersas en el producto OLAP Holos .
Los vectores de Iliffe se contrastan con los vectores dope en lenguajes como Fortran , que contienen los factores de paso y los valores de desplazamiento para los subíndices en cada dimensión.