Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Разряженные структуры данных. Последовательные и связные формы хранения. Особые случаи хранения.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
· Матрица NxN элементов называется разреженной, если она содержит небольшой процент ненулевых элементов (число элементов порядка N) · Коэффициент слабой заполненности матрицы — отношение числа ненулевых элементов к числу нулевых · Для задач, связанных с разреженными структурами данных, существуют специальные упакованные формы хранения: 1. Последовательная форма 1.1. Хранение в виде последовательных записей
Const n= // размерность разр. матрицы Var a: array [1..n,1..n] of real; b: array [1..k] of record // k ~ число ненулевых эл-тов (выбирается рандомно) value: real; // значение ненулевого эл-та i,j: integer; // позиция ненул. эл-та в строке/столбце end;
Плюсы 1.1: Резкое уменьшение требуемой памяти под хранение Минусы 1.1: — не известно точное значение k — необходимо производить упорядочивание по стр/стлбц — в процессе обработки, ненулевые эл-ты могут стать нул-ми и наоборот
1.2. Хранение в виде 2х последовательных записей ненулевых элементов.
В 1ой – недиагональные, во 2ой – диагональные
Const n= // размерность разр. матрицы Var a: array [1..n,1..n] of real; b: array [1..k] of record // k ~ число ненулевых эл-тов (выбирается рандомно) value: real; // значение ненулевого эл-та i,j: integer; // позиция ненул. эл-та в строке, столбце end;
c: array [1..m] of record value: real; ij: integer; // позиция в стр/слбц (неважно, т.к. диагональ) end;
Плюсы 1.2: Ещё меньший объём занимаемой памяти Минусы 1.2: Вся работа выполняется с 2мя записями => удвоенные минусы 1.1
1.3. Хранение в виде последовательности записей(2)
Вместо двух значений (I,j) сохраняется одно – позиция элемента (l), где l=i+(j-1)*n, j=trunc(l/n)+1
Const n= // размерность разр. матрицы Var a: array [1..n,1..n] of real; b: array [1..k] of record // k ~ число ненулевых эл-тов (выбирается рандомно) value: real; // значение ненулевого эл-та l: integer; // позиция ненул. эл-та в строке, столбце end;
2. Связные формы
Используются динамические структуры
2.1. Связное хранение по строкам — Создаётся массив указателей на списки ненулевых элементов строк — От каждого элемента массива ссылка на список ненулевых элементов строки, номер которой совпадает соответственно с номером элемента
2.2. Связное хранение по столбцам — Создаётся массив указателей на списки ненулевых элементов столбцов — От каждого элемента массива ссылка на список ненулевых элементов столбца, номер которого совпадает соответственно с номером элемента
2.3. Связное хранение по строкам и столбцам — Создаётся массив указателей на списки ненулевых элементов столбцов — Создаётся массив указателей на списки ненулевых элементов строк — От каждого элемента массива для строк, ссылка на список ненулевых элементов строки, номер которой совпадает соответственно с номером элемента — От каждого элемента массива для столбцов, ссылка на список ненулевых элементов столбца, номер которого совпадает соответственно с номером элемента
3. Особые случаи разреженной матрицы
3.1. Треугольная матрица — Все ненулевые значения находятся в одном из 4х треугольников, образованных диагоналями — Ненулевые значения заносятся в линейный массив построчно. В качестве отдельной переменной используется переменная, для обозначения ненулевых элементов. — Позиция в матрице хранится в переменной l, l=i*(i-1)/2 + j – 1
3.2. Ленточная матрица — с шириной ленты = D, если все её элементы, для которых выполняется |i-j|>D имеют ненулевое значение — Позиция в матрице хранится в переменной l, l = (i-1)*(2D+1)+j-I, для D>1
Если упакованного вида не хватает, матрицу хранят в ОП и на HDD.
Сортировки Понятие сортировки. Параметры оценки алгоритмов сортировки. Классификация сортировок.
Сортировка – это процесс изменения порядка в исходной последовательности, с тем что бы для каждой пары соседних элементов выдавало одно из этих значений. Каждый из элементов aj представляет комбинацию минимума из двух частей. Часть х1 – ключ элемента, составная часть по которой производиться работа функции F(x, y), у1 – дополнительные значения, может отсутствовать. Параметры по которым оцениваются сортировки: · Время сортировки, за какое время выполняется сортировка. · Память, требуется ли для работы указанного метода дополнительное выделение участков памяти. · Устойчивость сортировки, устойчивая сортировка не меняет взаиморасположения одинаковых элементов. · Естественность поведения, поведение сортировки при работе с уже отсортированной последовательностью. Сортировки делятся на: · Внутренние/сортировки массивом – это сортировки у которых данные располагаются во внутренней памяти. · Внешние сортировки, это сортировки находящиеся во внешней памяти. (Алгоритм Фон-Неймана, сортировка файлов). Внутренние сортировки так же делятся на: · Сортировки выбора. Базовый алгоритм, рассматривает последовательность a1, a2, …, an выбирает минимальный элемент, этот элемент записывается на первое место, а тот элемент который был первым записывается на место выбранного и тд (Алгоритм простого выбора). · Сортировка вставками. Алгоритм простых вставок a1 … akak+1 … an считается, что a1 … ak – упорядоченная задача: Найти место элемента ak+1 в упорядоченной последовательности. Место этого элемента ищется последовательным сравнением начиная с ak до тех пор пока не найдем пару где должен быть ak, аi+1. ak сдвигается в право на 1 элемент, а сам элемент ak+1 записывается на аi+1. · Сортировки обменом. Алгоритм пузырька или простого обмена. Принцип: Каждый элемент последовательности, сравнивается с каждым другим элементом и если в паре условие сортировки нарушено то производится обмен элементов. · Сортировки подсчетом. Физической перестановки элементов не производится. Они применяются в тех случаях когда не выгодно производить перемещение элементов. Реализация: создается второй массив, который по размерности совпадает с первым массивом – массив счетчик а1, а2, …, ак в1, в2, …, вк – счетчик. Производится сравнение элементов массива со всеми последующими. Характеристики внутренних методов сортировки. Дополнительные факторы, учитываемые при сортировке.
· Линейная – если элементы для сравнения выбираются последовательно, иначе если существуют какие то правила для выбора элементов, то не линейная сортировка. · Простые, комбинированные. Если на протяжение всего процесса сортировки используется один и тот же метод, то это простоя сортировка. Если происходит изменение метода при каких либо условиях, то это комбинированная сортировка. · Сравнительные, распределительные. В сравнительных сортировках ключ рассматривается как единое целое, в распределительных ключ рассматривается по составляющим. Основной критерий, по которому происходит выбор сортировки: Количество сравнений, кол-во перемещений. Дополнительные критерии: · Характеристики выбираемых данных: · Размер последовательности (внутренний или внешний, сколько памяти потребуется для реализации сортировки). · Характеристики ключа (Размер ключа, ключ является единым или составным, отдельно вводится является ли ключ машинным словом, ключ так же может состоять из разных частей машинных слов, в какой системе кодировки находятся данные). · Распределение ключей (есть какое то частичное упорядочивание; имеется ли дублирование значений ключей) · Какова длина и изменчивость значений в целом, обмен всегда производится только записями фиксированной длины. · Возможны сортировки обособленными ключами (Создается дополнительный массив с двумя составляющими, Ключ и Адрес элемента подлежащего сортировки). Программные связи определяют: · Источник данных, процесс сортировки изолирован, он производится с каким то условием. · Требуются ли физические перемещения данных · Характеристики самой машины: · Кол-во регистров · Логика операций сравнений · Временные характеристики операции сравнения · Какие процессы сравнения реализуются на данной машине · Объем ОП и внешней памяти, так же вид внешней памяти · Возможности маскировки данных и т.д.
|
||||
Последнее изменение этой страницы: 2016-07-14; просмотров: 858; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.148.145.219 (0.007 с.) |