- •НИУ ВШЭ – Пермь
- •Многоуровневая система управления данными
- •Порядок работы приложения, реализующего доступ к данным
- •Требования к реализации функции управления данными
- •Понятие файловой системы
- •Понятие файла
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Понятие файла и свойства файлов
- •Атрибуты файлов
- •Операции над файлами
- •Операции над файлами
- •Каталоги и системы каталогов
- •Каталоги и системы каталогов
- •Иерархическая система хранения данных
- •Иерархическая система хранения данных и полное имя файла
- •Подсистема ввода-вывода и управление внешними устройствами
- •Доступ к данным на ВЗУ
- •Организация ввода-вывода и управление внешними устройствами
- •Управление внешними устройствами: понятие драйвера
- •Организация файлов в ОС
- •Логическая организация файлов
- •Структуризация файлов: записи
- •Последовательная организация файлов
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: запись в файл
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: чтение из файла
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Последовательная организация файлов: прямой доступ к данным
- •Буферизация ввода
- •Буферизация вывода
- •Индексированные файлы
- •Индексированные файлы: пример
- •Многоуровневые индексы
- •Сортировка файлов
- •Понятие отрезка файла
- •Отрезки файла: пример
- •Разделение файла
- •Разделение файла: схема алгоритма
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Разделение файла: пример
- •Слияние файлов
- •Слияние файлов – схема слияния отрезков
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Слияние файлов – пример
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): разбиение
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Завершение сортировки (пример): слияние
- •Сортировка файлов: сбалансированное слияние
- •Сортировка файлов: сбалансированное слияние
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: четырехленточная сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка
- •Сортировка файлов: Фибоначчиева сортировка
- •Сортировка файлов: Фибоначчиева сортировка
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
- •Сортировка файлов: Фибоначчиева сортировка – пример
Сортировка файлов: четырехленточная сортировка – пример
Файл F: 11, 14, 8, 9, 51, 15, 86, 98, 13, 4, 6, 10
F1: 11, 14, 15, 86, 98, 4, 6, 10 |
|
F2: 8, 9, 51, 13 |
|
|
|
F3: 8, 9, 11, 14, 15, 51, 86, 98 |
|
F4: 4, 6, 10, 13 |
|
|
|
181
Сортировка файлов: четырехленточная сортировка – пример
Файл F: 11, 14, 8, 9, 51, 15, 86, 98, 13, 4, 6, 10
F1: 11, 14, 15, 86, 98, 4, 6, 10
F3: 8, 9, 11, 14, 15, 51, 86, 98
F2: 8, 9, 51, 13
F4: 4, 6, 10, 13
F1: 4, 6, 8, 9, 10, 11, 13, 14, 15, 51, 86, 98 |
|
F2: |
|
|
|
182 |
Результирующий файл |
|
Сортировка файлов: Фибоначчиева сортировка
Если отказаться от сбалансированности, то можно использовать стратегию, называемую многофазной сортировкой. В этом случае к двум сливаемым файлам, F1 и
F2 добавляется третий рабочий файл F3.
Предположим, что исходные файлы при слиянии содержат неравные количества отрезков L(F1) и L(F2).
Пример – число отрезков в файлах равно числам Фибоначчи. Рассмотрим фазы сортировки.
183
Сортировка файлов: Фибоначчиева сортировка
Первая фаза состоит в слиянии первых двух отрезков файлов F1 и F2, затем вторых отрезков, третьих отрезков и т.д. – до тех пор, пока один из файлов не будет исчерпан.
При этом в рабочем файле F3 появится min (L(F1), L(F2))
отрезков, в одном из исходных файлов останется max (L(F1), L(F2)) – min (L(F1), L(F2)),
а другой будет пустым.
Например, если L(F1) > L(F2), то файл F2 станет пустым, а в файле F1 останется L(F1) – L(F2) отрезков.
На этом первая фаза завершается.
184
Сортировка файлов: Фибоначчиева сортировка
На следующей, второй, фазе рабочим становится файл, ставший пустым на предыдущей фазе.
Таким образом, в файл F2 сливаются остаток файла F1 и файл, сформированный на предыдущей фазе, т.е. F3.
Этот регулярный процесс, в котором на каждой фазе два входных файла сливаются в один выходной, должен был бы заканчиваться формированием выходного файла, состоящего из одного отрезка.
Анализ изменений длин файлов показывает, что соотношения длин должны удовлетворять следующим равенствам:
Li+1 = Li + Li-1, …, L1 = 1, L0 = 0.
Эти равенства дают последовательность чисел Фибоначчи: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, . . .
Следовательно, метод многофазной сортировки непосредственно применим к файлам, длины которых (измеряемые количеством
185 отрезков) являются соседними числами Фибоначчи.
Сортировка файлов: Фибоначчиева сортировка – пример
Файл F: 8, 9, 7, 6, 5, 4, 3, 2, 0, 1
F1: 8, 9, 6, 4, 3, 2 |
|
|
|
F2: 7, 5, 0, 1 |
|
|
|
|
F3: 7, 8, 9
186
Сортировка файлов: Фибоначчиева сортировка – пример
Файл F: 8, 9, 7, 6, 5, 4, 3, 2, 0, 1
F1: 8, 9, 6, 4, 3, 2 |
|
|
|
F2: 7, 5, 0, 1 |
|
|
|
|
F3: 7, 8, 9, 5, 6
187
Сортировка файлов: Фибоначчиева сортировка – пример
Файл F: 8, 9, 7, 6, 5, 4, 3, 2, 0, 1
F1: 8, 9, 6, 4, 3, 2 |
|
|
|
F2: 7, 5, 0, 1 |
|
|
|
|
F3: 7, 8, 9, 5, 6, 0, 1, 4
188
Сортировка файлов: Фибоначчиева сортировка – пример
Файл F: 8, 9, 7, 6, 5, 4, 3, 2, 0, 1
F1: 8, 9, 6, 4, 3, 2 |
|
|
|
F2: 7, 5, 0, 1 |
|
|
|
|
F3: 7, 8, 9, 5, 6, 0, 1, 4
F2: 3, 7, 8, 9
189
Сортировка файлов: Фибоначчиева сортировка – пример
Файл F: 8, 9, 7, 6, 5, 4, 3, 2, 0, 1
F1: 8, 9, 6, 4, 3, 2 |
|
|
|
F2: 7, 5, 0, 1 |
|
|
|
|
F3: 7, 8, 9, 5, 6, 0, 1, 4
F2: 3, 7, 8, 9, 2, 5, 6
190
