Специальные массивы

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

причин могут записываться в память не полностью, а частично. Это

особенно актуально для массивов настолько больших размеров, что

для их хранения в полном объеме памяти может быть недостаточно. К

таким массивам относятся симметричные и разреженные массивы.

СИММЕТРИЧНЫЕ МАССИВЫ. Двумерный массив, в котором количество

строк равно количеству столбцов называется квадратной матрицей.

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

относительно главной диагонали, попарно равны друг другу, называ-

ется симметричной. Если матрица порядка n симметрична, то в ее

физической структуре достаточно отобразить не n^2, а лишь

n*(n+1)/2 её элементов. Иными словами, в памяти необходимо предс-

тавить только верхний (включая и диагональ) треугольник квадрат-

ной логической структуры. Доступ к треугольному массиву организу-

ется таким образом, чтобы можно было обращаться к любому элементу

исходной логической структуры, в том числе и к элементам, значе-

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

делены на основе значений симметричных им элементов.

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

ются процедуры для:

а) преобразования индексов матрицы в индекс вектора,

б) формирования вектора и записи в него элементов верхнего треу-

гольника элементов исходной матрицы,

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

тавления. При таком подходе обращение к элементам исходной матри-

цы выполняется опосредованно, через указанные функции.

В приложении приведен пример программы для работы с симмет-

ричной матрицей.

РАЗРЕЖЕННЫЕ МАССИВЫ. Разреженный массив - массив, большинс-

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

ти достаточно лишь небольшое число значений отличных от основного

(фонового) значения остальных элементов.

Различают два типа разреженных массивов:

1) массивы, в которых местоположения элементов со значениями от-

личными от фонового, могут быть математически описаны;

2) массивы со случайным расположением элементов.

В случае работы с разреженными массивами вопросы размещения

их в памяти реализуются на логическом уровне с учетом их типа.