Iliffe vektor

Inom datorprogrammering är en Iliffe-vektor , även känd som en display , en datastruktur som används för att implementera flerdimensionella arrayer . En Iliffe-vektor för en n -dimensionell array (där n ≥ 2) består av en vektor (eller 1-dimensionell array) av pekare till en ( n − 1)-dimensionell array. De används ofta för att undvika behovet av dyra multiplikationsoperationer när man utför adressberäkning på ett matriselement. De kan också användas för att implementera taggiga arrayer , såsom triangulära arrayer , triangulära matriser och andra typer av oregelbundet formade arrayer. Datastrukturen är uppkallad efter John K. Iliffe .

Deras nackdelar inkluderar behovet av flera kedjade pekarinriktningar för att komma åt ett element, och det extra arbete som krävs för att bestämma nästa rad i en n -dimensionell array för att tillåta en optimerande kompilator att förhämta den. Båda dessa är en källa till förseningar på system där CPU:n är betydligt snabbare än huvudminnet.

Iliffe-vektorn för en 2-dimensionell array är helt enkelt en vektor av pekare till vektorer av data, dvs Iliffe-vektorn representerar kolumnerna i en array där varje kolumnelement är en pekare till en radvektor.

Flerdimensionella arrayer i språk som Java , Python (flerdimensionella listor), Ruby , Visual Basic .NET , Perl , PHP , JavaScript , Objective-C (när du använder NSArray, inte en rad-stor C-stil array), Swift och Atlas Autokod implementeras som Iliffe-vektorer. Iliffe-vektorer användes för att implementera glesa flerdimensionella arrayer i OLAP-produkten Holos .

Iliffe-vektorer kontrasteras med dopvektorer i språk som Fortran , som innehåller stegfaktorerna och offsetvärdena för subskripten i varje dimension.

  • John K. Iliffe (1961). "Användningen av Genie-systemet i numeriska beräkningar". Årlig översyn i automatisk programmering . 2 : 25. doi : 10.1016/S0066-4138(61)80002-5 .

Vidare läsning