Индексный массив
Массив — структура данных, хранящая набор значений (элементов массива), идентифицируемых по индексу или набору индексов, принимающих целые (или приводимые к целым) значения из некоторого заданного непрерывного диапазона. Одномерный массив можно рассматривать как реализацию абстрактного типа данных — вектор. В некоторых языках программирования массив может называться также таблица, ряд, вектор, матрица.
Размерность массива — это количество индексов, необходимое для однозначной адресации элемента в рамках массива. По количеству используемых индексов массивы делятся на одномерные, двумерные, трёхмерные и т. д.
Форма или структура массива — сведения о количестве размерностей и размере (протяжённости) массива по каждой из размерностей; может быть представлена одномерным массивом.
Особенностью массива как структуры данных (в отличие, например, от связного списка) является константная вычислительная сложность доступа к элементу массива по индексу . Массив относится к структурам данных с произвольным доступом.
В простейшем случае массив имеет константную длину по всем размерностям и может хранить данные только одного, заданного при описании, типа. Ряд языков поддерживает также динамические массивы, длина которых может изменяться во время выполнения программы, и гетерогенные массивы, которые могут в разных элементах хранить данные различных типов. Некоторые специфичные типы массивов, используемые в различных языках и реализациях — ассоциативный массив, дерево отрезков, V-список, параллельный массив, разреженный массив.
Основные достоинства использования массивов — лёгкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим), одинаковое время доступа ко всем элементам, малый размер элементов (они состоят только из информационного поля).
Среди недостатков — невозможность удаления или добавления элемента без сдвига других при использовании статических массивов, а при использовании динамических и гетерогенных массивов — более низкое быстродействие из-за накладных расходов на поддержку динамики и разнородности. При работе с массивами с реализацией по типу языка Си (с указателями) и отсутствии дополнительных средств контроля типичной ошибкой времени выполнения является угроза выхода за границы массива и повреждения данных.
Варианты реализации
Массив — упорядоченный набор элементов, каждый из которых хранит одно значение, идентифицируемое с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа, а в качестве индексов выступают целые числа.
Количество используемых индексов массива может быть различным: массивы с одним индексом называют одномерными, с двумя — двумерными, и так далее. Одномерный массив — нестрого соответствует вектору в математике; двумерный («строка», «столбец») — матрице. Чаще всего применяются массивы с одним или двумя индексами; реже — с тремя; ещё большее количество индексов — встречается крайне редко.
Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчётом от нуля (zero-based), с отсчётом от единицы (one-based) и с отсчётом от специфического значения заданного программистом (n-based). Отсчёт от нуля более характерен для низкоуровневых языков программирования, хотя встречается и в языках высокого уровня, например, используется почти во всех языках семейства Си. В ряде языков (Паскаль, Ада, Модула-2) диапазон индексов может определяться как произвольный диапазон значений любого типа данных, приводимого к целому, то есть целых чисел, символов, перечислений, даже логического типа (в последнем случае массив имеет два элемента, индексируемых значениями «Истина» и «Ложь»).
- Пример фиксированного массива на языке Паскаль
{Одномерный массив целых чисел. Нумерация элементов от 1 до 15} a: array [1..15] of Integer; {Двумерный массив символов. Нумерация по столбцам по типу Byte (от 0 до 255) по строкам от 1 до 5} multiArray : array [Byte, 1..5] of Char; {Одномерный массив из строк. Нумерация по типу word (от 0 до 65536)} rangeArray : array [Word] of String; - Пример фиксированного массива на Си
int Array[10]; // Одномерный массив: целых чисел, размера 10; // Нумерация элементов — от 0 до 9. double Array[12][15]; // Двумерный массив: // вещественных чисел двойной точности, // размера 12 на 15; // Нумерация: по строкам — от 0 до 11, // по столбцам — от 0 до 14. В некоторых языках программирования многомерные массивы создаются на основе одномерных, у которых элементы являются массивами.
- Пример двумерного массива на JavaScript
//Создание двумерного массива чисел: var array = [ [11, 12, 13, 14, 15, 16], // Первая строка-массив [21, 22, 23, 24, 25, 26], // Вторая [31, 32, 33, 34, 35, 36] // Третья ]; // Вывод массива на консоль: array.forEach((subArray) => { // Для каждого под-массива, subArray.forEach((item) => { // для каждого его элемента, console.log(item); // — вывести этот элемент на консоль. }); }); Поддержка индексных массивов (свой синтаксис объявления, функции для работы с элементами и так далее) есть в большинстве высокоуровневых языков программирования. Максимально допустимая размерность массива, типы и диапазоны значений индексов, ограничения на типы элементов определяются языком программирования или конкретным транслятором.
В языках программирования, допускающих объявления программистом собственных типов, как правило, существует возможность создания типа «массив». В определении такого типа задаются типы и/или диапазоны значений каждого из индексов и тип элементов массива. Объявленный тип в дальнейшем может использоваться для определения переменных, формальных параметров и возвращаемых значений функций. Некоторые языки поддерживают для переменных-массивов операции присваивания (когда одной операцией всем элементам массива присваиваются значения соответствующих элементов другого массива).
- Объявление типа «массив» в языке Паскаль
type TArrayType = array [0..9] of Integer; (* Массивы, имеющие заданные параметры: 1. Размер — 10 ячеек; 2. Тип элементов, пригодных для хранения — — целые числа диапазона [−32 768; 32 767], — объявляются типом операндов, называющимся "TArrayType". *) var arr1, arr2, arr3: TArrayType; (* Объявление трёх переменных-массивов одного типа (вышеуказанного "TArrayType"). *) В языке программирования APL массив является основным типом данных (при этом нуль-мерный массив называется скаляром, одномерный — вектором, двумерный — матрицей). Помимо присваивания массивов в этом языке поддерживаются операции векторной и матричной арифметики, каждая из которых выполняется одной командой, операции сдвига данных в массивах, сортировка строк матрицы.
Динамические массивы
Динамическими называются массивы, размер которых может изменяться во время выполнения программы. Обычные (не динамические) массивы называют ещё фиксированными или статическими.
Динамические массивы могут реализовываться как на уровне языка программирования, так и на уровне системных библиотек. Во втором случае динамический массив представляет собой объект стандартной библиотеки, и все операции с ним реализуются в рамках той же библиотеки. Так или иначе, поддержка динамических массивов предполагает наличие следующих возможностей:
- Описание динамического массива. На уровне языка это может быть специальная синтаксическая конструкция, на уровне библиотеки — библиотечный тип данных, значение которого объявляется стандартным образом. Как правило, при описании (создании) динамического массива указывается его начальный размер, хотя это и не обязательно.
- Операция определения текущего размера динамического массива.
- Операция изменения размера динамического массива.
Пример конструкций для работы с динамическими массивами на Delphi:
var // Описания динамических массивов byteArray : Array of Byte; // Одномерный массив multiArray : Array of Array of string; // Многомерный массив ... SetLength(byteArray, 1); // Установка размера массива в 1 элемент. byteArray[0] := 16; // Запись элемента. SetLength(byteArray, Length(byteArray)+1); // Увеличение размера массива на единицу byteArray[Length(byteArray) - 1] := 10; // Запись значения в последний элемент. WriteLn(byteArray[Length(byteArray) - 1]); // Вывод последнего элемента массива. ... SetLength(multiArray, 20, 30); // Установка размера двумерного массива multiArray[10,15] := 12; // Запись значения SetLength(multiArray, 10, 15); // Уменьшение размера WriteLn(Length(multiArray), ' ', Length(multiArray[0]) Гетерогенные массивы
Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов. Реализация гетерогенности требует усложнения механизма поддержки массивов в трансляторе языка. В ряде языков программирования гетерогенные массивы называются записями.
Работа с памятью
Типовым способом реализации статического гомогенного (хранящего данные одного типа) массива является выделение непрерывного блока памяти объёмом , где
— размер одного элемента, а
— размеры диапазонов индексов (то есть количество значений, которые может принимать соответствующий индекс). При обращении к элементу массива с индексом
адрес соответствующего элемента вычисляется как
, где
— база (адрес начала блока памяти массива),
— значение
-го индекса, приведённое к целому с нулевым начальным смещением. Порядок следования индексов в формуле вычисления адреса может быть различным. (Этот способ соответствует реализации в большинстве компиляторов языка Си; в Фортране порядок индексов противоположен).
Таким образом, адрес элемента с заданным набором индексов вычисляется так, что время доступа ко всем элементам массива с теоретической точки зрения одинаково; однако, могут сказываться различные значения задержек отклика от оперативной памяти к ячейкам, расположенным на разных элементах памяти, но в практике высокоуровневого программирования такими тонкостями, за редкими исключениями, пренебрегают.
Обычным способом реализации гетерогенных массивов является отдельное хранение самих значений элементов и размещение в блоке памяти массива (организованного как обычный гомогенный массив, описанный выше) указателей на эти элементы. Поскольку указатели на значения любых типов, как правило, имеют один и тот же размер, удаётся сохранить простоту вычисления адреса, хотя возникают дополнительные накладные расходы на размещение значений элементов и обращение к ним.
Для динамических массивов может использоваться тот же механизм размещения, что и для статических, но с выделением некоторого объёма дополнительной памяти для расширения и добавлении механизмов изменения размера и перемещения содержимого массива в памяти.
Также динамические и гетерогенные массивы могут реализовываться путём использования принципиально иных методов хранения значений в памяти, например, одно- или двухсвязных списков. Такие реализации могут быть более гибкими, но требуют, как правило, дополнительных накладных расходов. Кроме того, в них обычно не удаётся выдержать требование константного времени доступа к элементу.
Примечания
- Дрот В. Л., Новиков Ф. А. «Толковый словарь современной компьютерной лексики», Размерность массива. Дата обращения: 18 октября 2012. Архивировано 3 июля 2013 года.
- Бартеньев, 2000.
- Магариу, 1983.
- Вирт, 1989, 1.6 Массив.
- Michael McMillan. Data Structures and Algorithms with JavaScript (англ.). — O’Reilly Media, 2014. — P. 30—32. — ISBN 978-1-4493-7396-2.
- 1.9. Массивы и записи. StudFiles. Дата обращения: 25 марта 2025.
Литература
- Вирт Н. Алгоритмы и структуры данных = Algoritms and data structure. — М.: Мир, 1989. — 360 с. — ISBN 5-03-001045-9.
- Магариу Н. А. Язык программирования АПЛ. — М.: «Радио и связь», 1983. — 96 с.
- Бартеньев О. В. Современный Фортран. — 3-е изд., доп. и перераб.. — М.: Диалог-МИФИ, 2000. — 449 с.
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Индексный массив, Что такое Индексный массив? Что означает Индексный массив?
U etogo termina sushestvuyut i drugie znacheniya sm Massiv Massiv struktura dannyh hranyashaya nabor znachenij elementov massiva identificiruemyh po indeksu ili naboru indeksov prinimayushih celye ili privodimye k celym znacheniya iz nekotorogo zadannogo nepreryvnogo diapazona Odnomernyj massiv mozhno rassmatrivat kak realizaciyu abstraktnogo tipa dannyh vektor V nekotoryh yazykah programmirovaniya massiv mozhet nazyvatsya takzhe tablica ryad vektor matrica Razmernost massiva eto kolichestvo indeksov neobhodimoe dlya odnoznachnoj adresacii elementa v ramkah massiva Po kolichestvu ispolzuemyh indeksov massivy delyatsya na odnomernye dvumernye tryohmernye i t d Forma ili struktura massiva svedeniya o kolichestve razmernostej i razmere protyazhyonnosti massiva po kazhdoj iz razmernostej mozhet byt predstavlena odnomernym massivom Osobennostyu massiva kak struktury dannyh v otlichie naprimer ot svyaznogo spiska yavlyaetsya konstantnaya vychislitelnaya slozhnost dostupa k elementu massiva po indeksu Massiv otnositsya k strukturam dannyh s proizvolnym dostupom V prostejshem sluchae massiv imeet konstantnuyu dlinu po vsem razmernostyam i mozhet hranit dannye tolko odnogo zadannogo pri opisanii tipa Ryad yazykov podderzhivaet takzhe dinamicheskie massivy dlina kotoryh mozhet izmenyatsya vo vremya vypolneniya programmy i geterogennye massivy kotorye mogut v raznyh elementah hranit dannye razlichnyh tipov Nekotorye specifichnye tipy massivov ispolzuemye v razlichnyh yazykah i realizaciyah associativnyj massiv derevo otrezkov V spisok parallelnyj massiv razrezhennyj massiv Osnovnye dostoinstva ispolzovaniya massivov lyogkost vychisleniya adresa elementa po ego indeksu poskolku elementy massiva raspolagayutsya odin za drugim odinakovoe vremya dostupa ko vsem elementam malyj razmer elementov oni sostoyat tolko iz informacionnogo polya Sredi nedostatkov nevozmozhnost udaleniya ili dobavleniya elementa bez sdviga drugih pri ispolzovanii staticheskih massivov a pri ispolzovanii dinamicheskih i geterogennyh massivov bolee nizkoe bystrodejstvie iz za nakladnyh rashodov na podderzhku dinamiki i raznorodnosti Pri rabote s massivami s realizaciej po tipu yazyka Si s ukazatelyami i otsutstvii dopolnitelnyh sredstv kontrolya tipichnoj oshibkoj vremeni vypolneniya yavlyaetsya ugroza vyhoda za granicy massiva i povrezhdeniya dannyh Varianty realizaciiMassiv uporyadochennyj nabor elementov kazhdyj iz kotoryh hranit odno znachenie identificiruemoe s pomoshyu odnogo ili neskolkih indeksov V prostejshem sluchae massiv imeet postoyannuyu dlinu i hranit edinicy dannyh odnogo i togo zhe tipa a v kachestve indeksov vystupayut celye chisla Kolichestvo ispolzuemyh indeksov massiva mozhet byt razlichnym massivy s odnim indeksom nazyvayut odnomernymi s dvumya dvumernymi i tak dalee Odnomernyj massiv nestrogo sootvetstvuet vektoru v matematike dvumernyj stroka stolbec matrice Chashe vsego primenyayutsya massivy s odnim ili dvumya indeksami rezhe s tremya eshyo bolshee kolichestvo indeksov vstrechaetsya krajne redko Pervyj element massiva v zavisimosti ot yazyka programmirovaniya mozhet imet razlichnyj indeks Razlichayut tri osnovnyh raznovidnosti massivov s otschyotom ot nulya zero based s otschyotom ot edinicy one based i s otschyotom ot specificheskogo znacheniya zadannogo programmistom n based Otschyot ot nulya bolee harakteren dlya nizkourovnevyh yazykov programmirovaniya hotya vstrechaetsya i v yazykah vysokogo urovnya naprimer ispolzuetsya pochti vo vseh yazykah semejstva Si V ryade yazykov Paskal Ada Modula 2 diapazon indeksov mozhet opredelyatsya kak proizvolnyj diapazon znachenij lyubogo tipa dannyh privodimogo k celomu to est celyh chisel simvolov perechislenij dazhe logicheskogo tipa v poslednem sluchae massiv imeet dva elementa indeksiruemyh znacheniyami Istina i Lozh Primer fiksirovannogo massiva na yazyke Paskal Odnomernyj massiv celyh chisel Numeraciya elementov ot 1 do 15 a array 1 15 of Integer Dvumernyj massiv simvolov Numeraciya po stolbcam po tipu Byte ot 0 do 255 po strokam ot 1 do 5 multiArray array Byte 1 5 of Char Odnomernyj massiv iz strok Numeraciya po tipu word ot 0 do 65536 rangeArray array Word of String Primer fiksirovannogo massiva na Siint Array 10 Odnomernyj massiv celyh chisel razmera 10 Numeraciya elementov ot 0 do 9 double Array 12 15 Dvumernyj massiv veshestvennyh chisel dvojnoj tochnosti razmera 12 na 15 Numeraciya po strokam ot 0 do 11 po stolbcam ot 0 do 14 V nekotoryh yazykah programmirovaniya mnogomernye massivy sozdayutsya na osnove odnomernyh u kotoryh elementy yavlyayutsya massivami Primer dvumernogo massiva na JavaScript Sozdanie dvumernogo massiva chisel var array 11 12 13 14 15 16 Pervaya stroka massiv 21 22 23 24 25 26 Vtoraya 31 32 33 34 35 36 Tretya Vyvod massiva na konsol array forEach subArray gt Dlya kazhdogo pod massiva subArray forEach item gt dlya kazhdogo ego elementa console log item vyvesti etot element na konsol Podderzhka indeksnyh massivov svoj sintaksis obyavleniya funkcii dlya raboty s elementami i tak dalee est v bolshinstve vysokourovnevyh yazykov programmirovaniya Maksimalno dopustimaya razmernost massiva tipy i diapazony znachenij indeksov ogranicheniya na tipy elementov opredelyayutsya yazykom programmirovaniya ili konkretnym translyatorom V yazykah programmirovaniya dopuskayushih obyavleniya programmistom sobstvennyh tipov kak pravilo sushestvuet vozmozhnost sozdaniya tipa massiv V opredelenii takogo tipa zadayutsya tipy i ili diapazony znachenij kazhdogo iz indeksov i tip elementov massiva Obyavlennyj tip v dalnejshem mozhet ispolzovatsya dlya opredeleniya peremennyh formalnyh parametrov i vozvrashaemyh znachenij funkcij Nekotorye yazyki podderzhivayut dlya peremennyh massivov operacii prisvaivaniya kogda odnoj operaciej vsem elementam massiva prisvaivayutsya znacheniya sootvetstvuyushih elementov drugogo massiva Obyavlenie tipa massiv v yazyke Paskaltype TArrayType array 0 9 of Integer Massivy imeyushie zadannye parametry 1 Razmer 10 yacheek 2 Tip elementov prigodnyh dlya hraneniya celye chisla diapazona 32 768 32 767 obyavlyayutsya tipom operandov nazyvayushimsya TArrayType var arr1 arr2 arr3 TArrayType Obyavlenie tryoh peremennyh massivov odnogo tipa vysheukazannogo TArrayType V yazyke programmirovaniya APL massiv yavlyaetsya osnovnym tipom dannyh pri etom nul mernyj massiv nazyvaetsya skalyarom odnomernyj vektorom dvumernyj matricej Pomimo prisvaivaniya massivov v etom yazyke podderzhivayutsya operacii vektornoj i matrichnoj arifmetiki kazhdaya iz kotoryh vypolnyaetsya odnoj komandoj operacii sdviga dannyh v massivah sortirovka strok matricy Dinamicheskie massivyOsnovnaya statya Dinamicheskij massiv Dinamicheskimi nazyvayutsya massivy razmer kotoryh mozhet izmenyatsya vo vremya vypolneniya programmy Obychnye ne dinamicheskie massivy nazyvayut eshyo fiksirovannymi ili staticheskimi Dinamicheskie massivy mogut realizovyvatsya kak na urovne yazyka programmirovaniya tak i na urovne sistemnyh bibliotek Vo vtorom sluchae dinamicheskij massiv predstavlyaet soboj obekt standartnoj biblioteki i vse operacii s nim realizuyutsya v ramkah toj zhe biblioteki Tak ili inache podderzhka dinamicheskih massivov predpolagaet nalichie sleduyushih vozmozhnostej Opisanie dinamicheskogo massiva Na urovne yazyka eto mozhet byt specialnaya sintaksicheskaya konstrukciya na urovne biblioteki bibliotechnyj tip dannyh znachenie kotorogo obyavlyaetsya standartnym obrazom Kak pravilo pri opisanii sozdanii dinamicheskogo massiva ukazyvaetsya ego nachalnyj razmer hotya eto i ne obyazatelno Operaciya opredeleniya tekushego razmera dinamicheskogo massiva Operaciya izmeneniya razmera dinamicheskogo massiva Primer konstrukcij dlya raboty s dinamicheskimi massivami na Delphi var Opisaniya dinamicheskih massivov byteArray Array of Byte Odnomernyj massiv multiArray Array of Array of string Mnogomernyj massiv SetLength byteArray 1 Ustanovka razmera massiva v 1 element byteArray 0 16 Zapis elementa SetLength byteArray Length byteArray 1 Uvelichenie razmera massiva na edinicu byteArray Length byteArray 1 10 Zapis znacheniya v poslednij element WriteLn byteArray Length byteArray 1 Vyvod poslednego elementa massiva SetLength multiArray 20 30 Ustanovka razmera dvumernogo massiva multiArray 10 15 12 Zapis znacheniya SetLength multiArray 10 15 Umenshenie razmera WriteLn Length multiArray Length multiArray 0 Geterogennye massivyGeterogennym nazyvaetsya massiv v raznye elementy kotorogo mogut byt neposredstvenno zapisany znacheniya otnosyashiesya k razlichnym tipam dannyh Massiv hranyashij ukazateli na znacheniya razlichnyh tipov ne yavlyaetsya geterogennym tak kak sobstvenno hranyashiesya v massive dannye otnosyatsya k edinstvennomu tipu tipu ukazatel Geterogennye massivy udobny kak universalnaya struktura dlya hraneniya naborov dannyh proizvolnyh tipov Realizaciya geterogennosti trebuet uslozhneniya mehanizma podderzhki massivov v translyatore yazyka V ryade yazykov programmirovaniya geterogennye massivy nazyvayutsya zapisyami Rabota s pamyatyuTipovym sposobom realizacii staticheskogo gomogennogo hranyashego dannye odnogo tipa massiva yavlyaetsya vydelenie nepreryvnogo bloka pamyati obyomom S m1 m2 mn displaystyle S cdot m 1 cdot m 2 cdot dots m n gde S displaystyle S razmer odnogo elementa a m1 mn displaystyle m 1 dots m n razmery diapazonov indeksov to est kolichestvo znachenij kotorye mozhet prinimat sootvetstvuyushij indeks Pri obrashenii k elementu massiva s indeksom i1 i2 in displaystyle i 1 i 2 dots i n adres sootvetstvuyushego elementa vychislyaetsya kak B S i1pm1 i2p m2 i n 1 p mn 1 inp displaystyle B S cdot left left dots left i text 1p m 1 i text 2p right cdot m 2 dots i n 1 text p right cdot m n 1 i n text p right gde B displaystyle B baza adres nachala bloka pamyati massiva ikp displaystyle i k mathrm p znachenie k displaystyle k go indeksa privedyonnoe k celomu s nulevym nachalnym smesheniem Poryadok sledovaniya indeksov v formule vychisleniya adresa mozhet byt razlichnym Etot sposob sootvetstvuet realizacii v bolshinstve kompilyatorov yazyka Si v Fortrane poryadok indeksov protivopolozhen Takim obrazom adres elementa s zadannym naborom indeksov vychislyaetsya tak chto vremya dostupa ko vsem elementam massiva s teoreticheskoj tochki zreniya odinakovo odnako mogut skazyvatsya razlichnye znacheniya zaderzhek otklika ot operativnoj pamyati k yachejkam raspolozhennym na raznyh elementah pamyati no v praktike vysokourovnevogo programmirovaniya takimi tonkostyami za redkimi isklyucheniyami prenebregayut Obychnym sposobom realizacii geterogennyh massivov yavlyaetsya otdelnoe hranenie samih znachenij elementov i razmeshenie v bloke pamyati massiva organizovannogo kak obychnyj gomogennyj massiv opisannyj vyshe ukazatelej na eti elementy Poskolku ukazateli na znacheniya lyubyh tipov kak pravilo imeyut odin i tot zhe razmer udayotsya sohranit prostotu vychisleniya adresa hotya voznikayut dopolnitelnye nakladnye rashody na razmeshenie znachenij elementov i obrashenie k nim Dlya dinamicheskih massivov mozhet ispolzovatsya tot zhe mehanizm razmesheniya chto i dlya staticheskih no s vydeleniem nekotorogo obyoma dopolnitelnoj pamyati dlya rasshireniya i dobavlenii mehanizmov izmeneniya razmera i peremesheniya soderzhimogo massiva v pamyati Takzhe dinamicheskie i geterogennye massivy mogut realizovyvatsya putyom ispolzovaniya principialno inyh metodov hraneniya znachenij v pamyati naprimer odno ili dvuhsvyaznyh spiskov Takie realizacii mogut byt bolee gibkimi no trebuyut kak pravilo dopolnitelnyh nakladnyh rashodov Krome togo v nih obychno ne udayotsya vyderzhat trebovanie konstantnogo vremeni dostupa k elementu PrimechaniyaDrot V L Novikov F A Tolkovyj slovar sovremennoj kompyuternoj leksiki Razmernost massiva neopr Data obrasheniya 18 oktyabrya 2012 Arhivirovano 3 iyulya 2013 goda Bartenev 2000 Magariu 1983 Virt 1989 1 6 Massiv Michael McMillan Data Structures and Algorithms with JavaScript angl O Reilly Media 2014 P 30 32 ISBN 978 1 4493 7396 2 1 9 Massivy i zapisi rus StudFiles Data obrasheniya 25 marta 2025 LiteraturaVirt N Algoritmy i struktury dannyh Algoritms and data structure M Mir 1989 360 s ISBN 5 03 001045 9 Magariu N A Yazyk programmirovaniya APL M Radio i svyaz 1983 96 s Bartenev O V Sovremennyj Fortran 3 e izd dop i pererab M Dialog MIFI 2000 449 s
