Студопедия — Модели структур данных
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Модели структур данных






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

Эта модель должна:

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

• позволять выполнять формальные преобразования, позволяющие получать новые структуры из имеющихся;

• позволять автоматически оценивать вычислительную и емкостную сложность базовой и производных конструкций.

Векторная организация предполагает размещение однотипных элементов в последовательной непрерывной памяти.

Основными компонентами вектора данных, являются множество ад-ресов (базы и элементов) – A и множество значений элементов – V.

При этом из множества адресов выделяется подмножество AAB, состоя-щее из одного элемента – адрес базы. На остальных элементах это-го множества AAE = A \ AAB определено отношение порядка.

В структуре между этими компонентами существует множество отно-шений С, которое распадается на следующие подмножества:

СA – отношения адресов A, показывающие, что из одного адреса в процессе работы получают другой, где

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

СAB – несимметричное отношение адреса базы и адресов элементов;

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

Максимальное количество элементов данных, которые могут быть занесены в этот вектор, определяется количеством зарезервиро-ванных адресов ZAE плюс адрес базы. Поэтому элементам множества вершин ZA следует сопоставить значение lV – объем памяти (байт), необходимый для размещения одного элемента данных, т. е.

(" z Î ZA) l (z) = lV.

Объем памяти, необходимый для хранения вектора, таким образом, составит L в = lV ·| ZA | (байт).

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

lV = lz + lw 1+ lw 2+ …+ lwr, где w 1, w 2, … wr Î W – множество весов.

В полученной модели каждое ребро соответствует одной операции вычисления адреса, следовательно функциональная вычислительная сложность определения элемента по номеру Q = 1.

Поиск элемента по значению, а также поиск экстремальных значений и значений, следующих за ними, в среднем предполагает просмотр по-ловины элементов, а потому функциональная вычислительная слож-ность этих операций для вектора составляет Q = n/2, где n = | ZV | – ко-личество элементов данных, хранящихся в векторе.

Поскольку значения элементов данных в обычном векторе не упорядо-чены, добавление элементов данных в вектор выполняют, дописывая значения на свободные места в конец вектора. Откуда функциональ-ная вычислительная сложность добавления элемента к несортированной совокупности данных Q = 1.

Дуги EAB упорядочены, т. е. нераздельно связаны с вершинами адресов, к которым они подходят, следовательно, для удаления элемента с но-мером k требуется изменить соответствие следующих вершин ZV вер-шинам ZAE. Откуда функциональная вычислительная сложность этой операции в среднем Q = n/ 2.

При этом вычислительная сложность выполнения основных операций для множества элементов данных считается одинаковой, поэтому определенные выше значения вычислительной сложности могут быть сопоставлены каждому элементу данных " z Î ZV или его адресу " z Î ZAE.

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

Таким образом, ZAE ® Qo, где Qo = { Qo i, i = 1,| Op | }, а Qo i – вычислительная сложность выполнения i -ой операции op i Î Op для элемента z Î ZAE.

Моделями вектора данных и вектора адресов будут соответственно графы:

G Д({<{ ZAB, ZAE }, lV,QО>;, ZV }, { { EAB, EAE }, EV }) и

G А({<{ ZAB, ZAE }, lA, QО>;, ZAV }, {{ EAB, EAE }, EAV }).

В отличие от векторной структуры компоненты списка расположены в произвольных местах памяти. Эти компоненты для линейного односвязного списка связаны между собой отношением «следующий» за счет хранения в компоненте адреса следующего компонента. Адрес списка хранится в начальном компоненте. Элементы данных связаны с адресами их хранения. При переходе от объекта к модели:

A «ZA, V«ZV, ZA È ZV=Z, ZA Ç ZV= Æ;

• C AB «EAB = { e 0}, где e 0 – дуга;

• C AE «EAE – множество дуг;

• C V «EV – множество звеньев, соединяющих вершины ZAE и ZV.

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

Каждому элементу множества ZA сопоставим значение lA – объем памяти,необходимый для хранения адреса, а каждому элементу множества ZV – значение lV _ объем памяти, необходимый для элемента данных, т. е.

(" z Î ZA) l (z) = lA & (" z Î ZV) l (z) = lV.

При этом объем памяти, необходимый для реализации линейного односвязного списка, определяется формулой:

LS 1 = lA * | ZA | + lV * | ZV |.

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

С этой точки зрения необходимо различать стековую и последователь-ную (очередь) дисциплины добавления/обработки. Для стека характерно, что элементы добавляются перед первым – в начало списка, следовательно, первым будет обрабатываться элемент, добавлен-ный последним. Добавление элементов в очередь выполняется в конец списка, следовательно, первым будет обрабатываться эле-мент, помещенный в очередь первым. Так вычислительная сложность выполнения операций определения первого и следующего элементов в среднем для очереди Q = 1, а для стека – Q = n /2. И, наоборот, вычислительная сложность выполнения операций определения последнего и предыдущего элементов в среднем для очереди Q = n /2, а для стека – Q = 1.Соответственно, вычислительная сложность добавления элемента в среднем для стека Q = 1, а для очереди – Q = n /2, так как предполагает поиск конца списка.

Вычислительная сложность удаления элемента не зависит от дисциплины обработки, так как при выполнении этой операции в любом случае приходится искать адрес либо предыдущего (очередь), либо следующего элемента (стек), адрес которых не хранится в удаляемом элементе, поэтому в среднем вычислительная сложность выполнения операции удаления для односвязного списка Q = n/ 2.

Однако, если в процессе поиска удаляемого элемента сохранять адрес предыдущего элемента списка, то удаление элемента может быть выполнено со сложностью Q = 1. Аналогично, операция добавления также может быть выполнена со сложностью Q = 1.

Вычислительная сложность поиска элемента по номеру или значению, а также поиска экстремумов и значений, следующих за ними, и для стека и для очереди в среднем Q = n/ 2. Аналогично модели вектора сопоставим каждому элементу множества ZAE вычислительную сложность выполнения операций с этим эле-ментом, т. е. ZAE ® Qo, где Qo = { Qoi, i =1,| Op | }, где Qoi – вычислитель-ная сложность выполнения i -ой операции opi Î Op для элемента z Î ZAE.







Дата добавления: 2015-04-19; просмотров: 417. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

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

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия