2.28M
Category: programmingprogramming

Внешние сортировки

1.

Внешние
сортировки

2.

Когда обычные сортировки не
справляются?
Когда данных слишком много, а оперативной памяти не хватает, на
помощь приходят внешние сортировки. Они помогают работать с огромными
файлами, например, в базах данных
Все данные уместились в оперативной
памяти компьютера
Данные не умещаются и поступают
частями

3.

Основные понятия
Внешняя сортировка — сортировка данных, расположенных на
периферийных устройствах и не вмещающихся в оперативную память, то есть
когда применить одну из внутренних сортировок невозможно.
Серия – это кусочек данных, который уже отсортирован. Внешние
сортировки работают с такими сериями, чтобы быстрее получить итоговый
порядок.

4.

Как работает внешняя сортировка?
Есть два ключевых процесса:
1. Распределение – разбиение данных на части.
2. Слияние – объединение частей в один отсортированный массив.

5.

Распределение
• Данные разбиваются на серии, где каждая серия отсортирована.
• Каждая серия записана в отдельный файл.

6.

Слияние
• Серии из файлов объединяются попарно.
• Получается новая отсортированная серия.

7.

Основные методы сортировок
Естественная сортировка - метод естественного слияния
Сортировка методом двух-путевого сбалансированного слияния
Многофазная сортировка – на основе ряда чисел Фибоначчи.

8.

Естественное слияние – когда природа
помогает!
В исходных данных уже могут быть участки, где элементы идут в
порядке возрастания или убывания. Поэтому алгоритм использует уже
упорядоченные серии. Мы объединяем их, пока весь файл не будет
отсортирован.
Алгоритм:
1. Деление на серии.
2. Слияние серий воедино с сортировкой.

9.

Алгоритм

10.

Работа алгоритма

11.

Сбалансированное слияние – как
упорядочить хаос?
Алгоритм использует два файла и чередует их роли. Это
помогает равномерно объединять серии.
•Данные разбиваются на две равные части (или почти равные, если
количество элементов нечётное).
•Отсортированные части объединяются в один упорядоченный массив.
•Каждая часть рекурсивно сортируется.

12.

Алгоритм

13.

Работа алгоритма

14.

Работа алгоритма

15.

Работа алгоритма

16.

Работа алгоритма

17.

Работа алгоритма

18.

Многофазная сортировка – хитрая
стратегия!
Многофазная сортировка — это метод внешней сортировки, который
используется для упорядочивания данных, не помещающихся в оперативную
память. Этот метод основан на распределении данных по нескольким файлам
и их последовательном слиянии с использованием фиктивных серий для
оптимизации процесса.
Чтобы быстрее объединять серии, их распределяют неравномерно – по
числам Фибоначчи. Если серий не хватает, добавляют пустые (фиктивные)
серии.

19.

Принцип работы
1. Начальное распределение серий
• Исходные данные разбиваются на серии и распределяются по нескольким файлам.
• Количество серий в каждом файле должно соответствовать определённой
последовательности (например, числам Фибоначчи).
2. Слияние серий
• Серии из нескольких файлов сливаются в один, при этом на каждом этапе количество
серий уменьшается.
• Фиктивные серии используются для балансировки процесса.
3. Повторение процесса
• Процесс слияния повторяется до тех пор, пока не останется одна полностью
отсортированная серия.

20.

Алгоритм

21.

Работа алгоритма

22.

Работа алгоритма

23.

Работа алгоритма

24.

Работа алгоритма

25.

Работа алгоритма

26.

Работа алгоритма

27.

Работа алгоритма

28.

Работа алгоритма

29.

Работа алгоритма
English     Русский Rules