Эти обстоятельства делают сортировку данных обязательной операцией, которая сплошь и рядом предшествует собственно обработке данных.
Время сортировки данных, которые можно в известной мере считать и трудоемкостью формирования упорядоченной последовательной структуры, пропорционально числу сравнений пар признаков различных записей (С), в свою очередь зависящему от количества записей в массиве (М). Лучший по времени метод сортировки — метод слияния — характеризуется числом сравнений
С = М log2М
и временем сортировки
где t—константа с размерностью времени.
Метод слияния использует для сортировки резерв памяти длиной в половину массива.
Другие методы упорядочения последовательных структур данных уступают методу слияния в быстродействии.
Метод слияния применим и для упорядочения строчных структур данных, причем здесь не требуется резерва памяти, поскольку вместо пересылки записей производятся манипуляции с адресами связи.
Формирование инвертированного массива ведется путем заполнения его адресами и ключами, взятыми из основного массива. В таблице приведен пример такого заполнения инвертированного массива. При этом выделяется участок памятиV1 для хранения ключей и связанных с ними адресов записей основного массива.
B | E | A | C | D |
0100 | 0100 | 0140 | 0140 | 0220 |
0220 | 0140 | 0220 | 0240 | |
0240 |
Путем первого просмотра основного массива выполняется разметка памяти. Фиксируются адреса полей и значения ключей в каждой группе. В таблице они изображены столбцами, в каждом из которых имеются значение ключа и 4 адреса.
Затем основной массив просматривается второй раз от записи к записи. Во всех его записях проверяется наличие ключей, значения которых зафиксированы ранее в инвертированном массиве, и на этой основе заполняются адреса в группах. Именно поэтому в таблице группы не упорядочены по ключу. Последняя операция—сортировка групп по значениям ключа и уплотнение инвертированного массива.
При первом просмотре основного массива производится рпересылок значений ключей в поле памяти V1. Во время второго просмотра в инвертированный массив пересылаются М адресов записей основного массива. Сортировка групп методом слияния потребует времениtplog2p. Наконец, уплотнение инвертированной структуры данных означает пересылку байт за байтом всего поля за исключением первой группы. Общее время формирования инвертированного массива составляет:
T = t1(pl + Ml' + V1)+ tplog2p,гдеt1 — время пересылки байта, l — средняя длина ключа, l' — длина адреса, р— число разных значений ключей.
Это время, как правило, превышает время формирования упорядоченной последовательной структуры данных.
Среднее число сравнений, необходимое для построения бинарного дерева, равно: С=1,39М log2М, если М достаточно велико. Формирование бинарного дерева требует больших затрат времени и памяти, чем формирование строчной структуры данных.
Построение неуплотненной табличной структуры данных заключается в создании вектора описания записей, вектора описания ключей и матрицы значений ключей. При этом выполняются пересылки адресов и ключей. Время формирования неуплотненной табличной структуры изm строк и п столбцов составляет:
T = t1(l'(m + n) + l mn).Для формирования табличной структуры данных с логической шкалой необходимо иметь вектор описания записей и вектор описания ключей. Создание логической шкалы для одной строки требует п сравнений признаков и п пересылок битов. С учетом этого общее время формирования табличной структуры данных с логической шкалой равно:
T = t1l'(m + n) + mn(t + t1) + tdlmn,К
где t— время одного сравнения и d =— — плотность ненулевых
тп
значений ключевого признака (К — число ненулевых значений ключевого признака).
Первое слагаемое описывает построение вектора описания записей и вектора описания ключей. Второе слагаемое относится к формированию всех логических шкал структуры Третье слагаемое учитывает время пересылки ненулевых значений ключевого признака в уплотненные строки таблицы.
Для формирования табличной структуры данных, уплотненной методом индексных пар, ключевые признаки каждой записи последовательно сравниваются с нулем. Ненулевые ключи сопровождаются номерами их строки и столбца в матрице и помещаются в массив групп. Номера строки и столбца ключевого признака формируются путем прибавления 1 после каждого сравнения к номеру столбца, а при смене строки — к номеру строки. Время этих операций составляет:
T = t1l'(m + n) + mn (t+ t2) + t1dmn(l + 21"),гдеt2 — время одной операции сложения, а 1"— длина поля, хранящего номер строки или столбца.
Первое слагаемое описывает формирование вектора описания записей и вектора описания ключей, которые необходимы для просмотра ключевых признаков всех записей.
Уплотнение табличной структуры данных с помощью логической шкалы эффективнее по времени формирования структуры, чем метод индексных пар, так как t1<t2и l< l + 2l".Формирование гибридных структур типа А и В сводится к их сортировке. Трудоемкость этой операции определяется так же, как и для последовательных структур. Создание гибридной структуры типа С несколько превышает время создания бинарной древовидной структуры данных. Формирование гибридной структуры типа D ведется так же, как и формирование табличных структур данных, но для временных оценок необходимо учитывать поправки на создание цепочек в резервной зоне.
Наименьшее время для формирования требуют последовательная и строчная структуры, а также гибридные структуры типа А иВ.
3. Составление баланса преследует цель установить равенство итогов средств, находящихся в активе и пассиве.
Проведены ряд операций. В банке получен кредит в размере 1000 р. Деньги зачислены на расчетный счет. Приобретены материалы на сумму 540 р. Их покупка оплачена из кассы. Погашена задолженность поставщику за поставку леса на сумму 3780 р. Деньги перечислены с расчетного счета. Частично погашен кредит банка в размере 500 р. с расчетного счета. Из прибыли направлено в фонд материального поощрения 700 р.
Пусть информационный поток отражает результаты работы частного предприятия «ФИН» в течение одного дня.
Набор характеристик следующий:
предприятие | дата | операция | сколько | наименов. валюты | тип операц. | ответственный |
наименование | чч.мм.гг. | наименован. | сумма | руб./долл | актив/ пассив | должность |
«ФИН» «ФИН» «ФИН» «ФИН» «ФИН» «ФИН» «ФИН» «ФИН» «ФИН» «ФИН» | 31.03.98 31.03.98 31.03.98 31.03.98 31.03.98 31.03.98 31.03.98 31.03.98 31.03.98 31.03.98 | Кредит получен в банке.Зачислен нарасч. счет.Куплены материалы.Оплачены из кассы.Погашена задолжен.Списано с расч. счета.Погашен кредит.Списан с расч. счетаНаправ. из прибыли.В ФМП. | 1000 1000 540 540 3780 3780 500 500 700 700 | Руб. Руб. Руб. Руб. Руб. Руб. Руб. Руб. Руб. Руб. | П А А П А П А П П А | Гл.бух. Гл.бух. Гл.бух. Гл.бух. Гл.бух. Гл.бух. Гл.бух. Гл.бух. Гл.бух. Гл.бух. |
Сведения из документа являются информационным отображением финансовых операций частного предприятия. Данный документ позволяет структурировать весь информационный поток. Документ обеспечивает следующие свойства информационной базы системы: