рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

МАССИВЫ С МАТЕМАТИЧЕСКИМ ОПИСАНИЕМ МЕСТОПОЛОЖЕНИЯ НЕФОНОВЫХ

МАССИВЫ С МАТЕМАТИЧЕСКИМ ОПИСАНИЕМ МЕСТОПОЛОЖЕНИЯ НЕФОНОВЫХ - раздел Образование, СТАТИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ Элементов. К Данному Типу Массивов Относятся Массивы, У Кото...

ЭЛЕМЕНТОВ. К данному типу массивов относятся массивы, у которых

местоположения элементов со значениями отличными от фонового, мо-

гут быть математически описаны, т. е. в их расположении есть ка-

кая-либо закономерность.

Элементы, значения которых являются фоновыми, называют нуле-

выми; элементы, значения которых отличны от фонового, - ненулевы-

ми. Но нужно помнить, что фоновое значение не всегда равно нулю.

Ненулевые значения хранятся, как правило, в одномерном мас-

сиве, а связь между местоположением в исходном, разреженном, мас-

сиве и в новом, одномерном, описывается математически с помощью

формулы, преобразующей индексы массива в индексы вектора.

На практике для работы с разреженным массивом разрабатывают-

ся функции:

а) для преобразования индексов массива в индекс вектора;

б) для получения значения элемента массива из ее упакованного

представления по двум индексам (строка, столбец);

в) для записи значения элемента массива в ее упакованное предс-

тавление по двум индексам.

При таком подходе обращение к элементам исходного массива

выполняется с помощью указанных функций. Например, пусть имеется

двумерная разреженная матрица, в которой все ненулевые элементы

расположены в шахматном порядке, начиная со второго элемента. Для

такой матрицы формула вычисления индекса элемента в линейном

представлении будет следующей : L=((y-1)*XM+x)/2),

где L - индекс в линейном представлении;

x, y - соответственно строка и столбец в двумерном представлении;

XM - количество элементов в строке исходной матрицы.

В программном примере 3.1 приведен модуль, обеспечивающий

работу с такой матрицей (предполагается, что размер матрицы XM

заранее известен).

{===== Программный пример 3.1 =====}

Unit ComprMatr;

Interface

Function PutTab(y,x,value : integer) : boolean;

Function GetTab(x,y: integer) : integer;

Implementation

Const XM=...;

Var arrp: array[1..XM*XM div 2] of integer;

Function NewIndex(y, x : integer) : integer;

var i: integer;

begin NewIndex:=((y-1)*XM+x) div 2); end;

Function PutTab(y,x,value : integer) : boolean;

begin

if NOT ((x mod 2<>0) and (y mod 2<>0)) or

NOT ((x mod 2=0) and (y mod 2=0)) then begin

arrp[NewIndex(y,x)]:=value; PutTab:=true; end

else PutTab:=false;

end;

Function GetTab(x,y: integer) : integer;

begin

if ((x mod 2<>0) and (y mod 2<>0)) or

((x mod 2=0) and (y mod 2=0)) then GetTab:=0

else GetTab:=arrp[NewIndex(y,x)];

end;

end.

Сжатое представление матрицы хранится в векторе arrp.

Функция NewIndex выполняет пересчет индексов по вышеприве-

денной формуле и возвращает индекс элемента в векторе arrp.

Функция PutTab выполняет сохранение в сжатом представлении

одного элемента с индексами x, y и значением value. Сохранение

выполняется только в том случае, если индексы x, y адресуют не

заведомо нулевой элемент. Если сохранение выполнено, функция

возвращает true, иначе - false.

Для доступа к элементу по индексам двумерной матрицы исполь-

зуется функция GetTab, которая по индексам x, y возвращает выб-

ранное значение. Если индексы адресуют заведомо нулевой элемент

матрицы, функция возвращает 0.

Обратите внимание на то, что массив arrp, а также функция

NewIndex не описаны в секции IMPLEMENTATION модуля. Доступ к со-

держимому матрицы извне возможен только через входные точки Put-

Tab, GetTab с заданием двух индексов.

В программном примере 3.2 та же задача решается несколько

иным способом: для матрицы создается дескриптор - массив desc,

который заполняется при инициализации матрицы таким образом, что

i-ый элемент массива desc содержит индекс первого элемента i-ой

строки матрицы в ее линейном представлении. Процедура инициализа-

ции InitTab включена в число входных точек модуля и должна вызы-

ваться перед началом работы с матрицей. Но доступ к каждому эле-

менту матрицы (функция NewIndex) упрощается и выполняется быст-

рее: по номеру строки y из дескриптора сразу выбирается индекс

начала строки и к нему прибавляется смещение элемента из столбца

x. Процедуры PutTab и GetTab - такие же, как и в примере 3.1 поэ-

тому здесь не приводятся.

{===== Программный пример 3.2 =====}

Unit ComprMatr;

Interface

Function PutTab(y,x,value : integer) : boolean;

Function GetTab(x,y: integer) : integer;

Procedure InitTab;

Implementation

Const XM=...;

Var arrp: array[1..XM*XM div 2] of integer;

desc: array[1..XM] of integer;

Procedure InitTab;

var i : integer;

begin

desc[1]:=0; for i:=1 to XM do desc[i]:=desc[i-1]+XM;

end;

Function NewIndex(y, x : integer) : integer;

var i: integer;

begin NewIndex:=desc[y]+x div 2; end;

end.

РАЗРЕЖЕННЫЕ МАССИВЫ СО СЛУЧАЙНЫМ РАСПОЛОЖЕНИЕМ ЭЛЕМЕНТОВ. К

данному типу массивов относятся массивы, у которых местоположения

элементов со значениями отличными от фонового, не могут быть ма-

тематически описаны, т. е. в их расположении нет какой-либо зако-

номерности.

│ 0 0 6 0 9 0 0 │ Пусть есть матрица А размерности 5*7,

│ 2 0 0 7 8 0 4 │ в которой из 35 элементов только 10 от-

│10 0 0 0 0 0 0 │ личны от нуля.

│ 0 0 12 0 0 0 0 │

│ 0 0 0 3 0 0 5 │

– Конец работы –

Эта тема принадлежит разделу:

СТАТИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ

Массивы Логическая структура фиксированным набором элементов... Операции... Важнейшая операция физического уровня над массивом доступ...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: МАССИВЫ С МАТЕМАТИЧЕСКИМ ОПИСАНИЕМ МЕСТОПОЛОЖЕНИЯ НЕФОНОВЫХ

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

СТАТИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ
Статические структуры относятся к разряду непримитивных структур, которые, фактически, представляют собой структурирован- ное множество примитивных, базовых, структур. Например, в

Векторы
ЛОГИЧЕСКАЯ СТРУКТУРА. Вектор (одномерный массив) - структура данных с фиксированным числом элементов одного и того же типа ти- па. Каждый элемент вектора имеет уникальный в рамках

Логическая структура
Массив - такая структура данных, которая характеризуется: - фиксированным набором элементов одного и того же типа; - каждый элемент имеет уникальный набор значений индексов;

Физическая структура
Физическая структура - это размещение элементов массива в памяти ЭВМ. Для случая двумерного массива, состоящего из (k1-n1+1) строк и (k2-n2+1) столбцов физическая структура предс-

Адресация элементов с помощью векторов Айлиффа
Из выше приведенных формул видно, что вычисление адреса эле- мента многомерного массива может потребовать много времени, пос- кольку при этом должны выполняться операции сложения

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

ПРЕДСТАВЛЕНИЕ РАЗРЕЖЕННЫХ МАТРИЦ МЕТОДОМ ПОСЛЕДОВАТЕЛЬНОГО
РАЗМЕЩЕНИЯ. Один из основных способов хранения подобных разрежен- ных матриц заключается в запоминании ненулевых элементов в одно- мерном массиве и идентификации

ПРЕДСТАВЛЕНИЕ РАЗРЕЖЕННЫХ МАТРИЦ МЕТОДОМ СВЯЗАННЫХ СТРУКТУР.
Методы последовательного размещения для представления разреженных матриц обычно позволяют быстрее выполнять операции над матрицами и более эффективно использовать память, чем мето

Множества
ЛОГИЧЕСКАЯ СТРУКТУРА. Множество - такая структура, которая представляет собой набор неповторяющихся данных одного и того же типа. Множество может принимать все зн

Числовые множества
Стандартный числовой тип, который может быть базовым для формирования множества - тип byte. Множество хранится в памяти как показано в таблице 3.3. Таблица 3.3 &

Множество из элементов перечислимого типа
Множество, базовым типом которого есть перечислимый тип, хранится также, как множество, базовым типом которого является тип byte. Однако, в памяти занимает место, которое зависит

Множество от интервального типа
Множество, базовым типом которого есть интервальный тип, хранится также, как множество, базовым типом которого является тип byte. Однако, в памяти занимает место, которое зависит

Логическое и машинное представление записей
Запись - конечное упорядоченное множество полей, характери- зующихся различным типом данных. Записи являются чрезвычайно удобным средством для представления программных моделей ре

Таблицы
Когда речь шла о записях, было отмечено, что полями записи могут быть интегрированные структуры данных - векторы, массивы, другие записи. Аналогично и элементами векторов и массив

Структурами. Поиск
В этом и следующих разделах представлен ряд алгоритмов поис- ка данных и сортировок, выполняемых на статических структурах данных, так как это характерные операции логического уро

Последовательный или линейный поиск
Простейшим методом поиска элемента, находящегося в неупоря- доченном наборе данных, по значению его ключа является последова- тельный просмотр каждого элемента набора, который про

Бинарный поиск
Другим относительно простым методом доступа к элементу явля- ется метод бинарного (дихотомического, двоичного) поиска, который выполняется в заведомо упорядоченной последовательно

Структурами. Сортировка
Для самого общего случая сформулируем задачу сортировки та- ким образом: имеется некоторое неупорядоченное входное множество ключей и должны получить выходное множество тех же клю

Сортировки выборкой
СОРТИРОВКА ПРОСТОЙ ВЫБОРКОЙ. Данный метод реализует практи- чески "дословно" сформулированную выше стратегию выборки. Порядок алгоритма простой выборки

Еще одна модификация пузырьковой сортировки носит название
шейкер-сортировки. Суть ее состоит в том, что направления прос- мотров чередуются: за просмотром от начала к концу следует прос- мотр от конца к началу входного м

Сортировки включением
СОРТИРОВКА ПРОСТЫМИ ВСТАВКАМИ. Этот метод - "дословная" реа- лизации стратегии включения. Порядок алгоритма сортировки просты- ми вставками - O(N^2), ес

Сортировки распределением.
ПОРАЗРЯДНАЯ ЦИФРОВАЯ СОРТИРОВКА.Алгоритм требует представ- ления ключей сортируемой последовательности в виде чисел в неко- торой системе счисления P. Число прохо

Таблицы прямого доступа
Простейшей организацией таблицы, обеспечивающей идеально быстрый поиск, вляется таблица прямого доступа. В такой таблице ключ является адресом записи в таблице или может быть прео

Таблицы со справочниками
Одним из способов устранения этого недостатка является метод справочников. Основная таблица содержит записи в произвольном по- рядке. В дополнение к основной строится справочная и

Хешированные таблицы и функции хеширования
Как отмечалось выше, в каждой реальной таблице фактическое множество ключей является лишь небольшим подмножеством множества всех теоретически возможных ключей. Поскольку память яв

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги