- •Восточно-Сибирский государственный технологический университет
- •Основные определения
- •Сложность алгоритма - одночлен, отражающий порядок величины требуемого ресурса (времени/дополнительной памяти) в зависимости
- •Например, для алгоритма с временной сложностью T(n2) при достаточно больших n можно утверждать,
- •Методы сортировки
- •Классификация методов внутренней сортировки
- •Простое включение
- •Сортировка подсчетом
- •Простое извлечение
- •Древесная сортировка
- •Дана числовая последовательность: 10, 5, 80, 6, 35. Выполнить древесную сортировку. Записать цепочку
- •Простой обмен
- •Метод Хоара
- •Сортировка слиянием
- •Сортировка распределением
- •Теоретическая сложность методов сортировки
- •Желаю успехов в изучении методов сортировки
Дана числовая последовательность: 10, 5, 80, 6, 35. Выполнить древесную сортировку. Записать цепочку преобразований.
Сортировка начинается с размещения элементов последовательности в
двоичное дерево по схеме |
|
|
|
|
|
|
|
|
|
- первый элемент помещается в корень дерева |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(10), затем движение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
осуществляется вниз и слева направо (5 и 80, далее 6 и 35) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
80 |
|
|
|
|
|
|
|
|
35 |
|
|
|
|
|
|
|
|
|
|
|
80 |
|
|
|
|
|
|
|
|
|
35 |
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
35 |
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
6 |
|
|
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
80 |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
20 |
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
20 |
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
20 |
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
6 |
|
|
|
80 |
|
|
|
35 |
|
|
|
|
80 |
|
|
|
|
35 |
|
|
80 |
|
|
35 |
|
|
|
|
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
Отсортированные элементы обозначены красным цветом |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 20
Таким образом, последовательность упорядочена.
35 80
Простой обмен
Дана числовая последовательность: 10, 5, 80, 6, 35. Выполнить сортировку методом пузырька.
При простом обмене максимальный элемент последовательности за первый проход достигает своего места, т.е. подобно пузырьку «всплывает на поверхность».
10 5 80 6 35 - Исходная последовательность
В данном примере после первого прохода элемент «80» переместится на свое место
|
10 |
5 |
80 |
6 |
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После второго прохода получим |
|
|
|
|
|
|||||||
5 |
10 |
6 |
35 |
80 |
||||||||
отсортированную последовательность |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Метод Хоара
Дана числовая последовательность: 10, 5, 80, 6, 35, 4, 15,1.
Выполнить сортировку методом Хоара.
i =j
Просмотр элементов начинается с концов последовательности до тех пор, пока i не станет равнымj
10 |
5 |
80 |
6 |
35 |
4 |
15 |
1 |
i |
|
|
|
|
|
|
j |
1 |
5 |
80 |
6 |
35 |
4 |
15 |
10 |
15 4 6 35 80 15 10
Последовательность отсортирована относительно центра
Двойными
стрелками показаны обмены
Отсортированная
последовательность
|
1 |
5 |
|
4 |
6 |
|
35 |
|
80 |
15 |
10 |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
j |
|
|
|
|
|
|
|
i |
|
|
j |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
1 |
5 |
|
|
4 |
6 |
|
10 |
|
80 |
15 |
35 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 |
4 |
|
5 |
6 |
|
10 |
|
15 |
80 |
35 |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
1 |
4 |
|
5 |
6 |
|
10 |
|
15 |
35 |
80 |
|
|
Сортировка слиянием
Дана числовая последовательность: 10, 5, 80, 6, 35, 4, 15. Выполнить сортировку слиянием.
10 |
5 |
80 |
6 |
35 |
4 |
15 |
Исходную последовательность необходимо разбить на группы по два элемента.
Внутри каждой группы элементы упорядочить, используя любой метод сортировки и т.д.
Выполнить сортировку обменом
5 |
10 |
6 |
80 |
4 |
35 |
15 |
Объединить группы и выполнить сортировку
5 |
6 |
10 |
80 |
4 |
15 |
35 |
|
|
Объединить группы и выполнить сортировку |
|||||||
|
|
|
|
|
|
|
|
|
|
Отсортированная последовательность |
|
|
4 |
5 |
6 |
10 |
15 |
35 |
80 |
|
|
||||||||
|
|
Сортировка распределением
Дана числовая последовательность: 3, 10, 8, 6, 5. Выполнить сортировку вырожденным распределением.
Создать цикл, максимальный параметр которого равен максимальному значению исходной последовательности. Затем каждый элемент исходной последовательности сравнивается с параметром цикла. Если элемент последовательности равен параметру цикла, то он записывается в результирующую последовательность.
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
|
|
A1 |
|
A2 |
A3 |
|
A4 |
|
A5 |
Теоретическая сложность методов сортировки
Методы
сортировки
Подсчетом
Включением
Шелла
Извлечением
Древесная
Пузырьковая
Быстрая Слиянием Распределением
Tmax |
Tmid |
Tmin |
Omax |
|
n2 |
|
n |
|
n2 |
n |
1 |
n2 |
n1,25 |
n |
1 |
|
n2 |
|
1 |
|
n*log(n) |
|
1 |
|
n2 |
n |
1 |
n2 |
n*log(n) |
|
log(n) |
|
n*log(n) |
|
n |
|
n |
|
n |
Желаю успехов в изучении методов сортировки
Бильгаева Людмила Пурбоевна к.т.н., доцент кафедра «Системы информатики» Восточно-Сибирский
государственный технологический университет
E-mail: bilgaeval@mail.ru
Благодарю за внимание!