Баландина Анна МП-12-2.pptx
- Количество слайдов: 14
Федеральное агентство по образованию РФ Национальный исследовательский технологический университет «МИСи. С» Алгоритмы сортировки. Сортировка Шелла Выполнила: студентка 1 -го курса группа МП-12 -2 Баландина Анна 1
Алгоритм сортировки — это алгоритм для упорядочения элементов в списке. Сортировка - это процесс упорядочивания информации по определенному признаку. Цель сортировки - облегчение последующего поиска элементов. Это почти универсальный вид обработки информации, с которым мы встречаемся в жизни повсеместно. 2
Параметры, по которым производиться оценка алгоритмов. Время сортировки – основной параметр, характеризующий быстродействие алгоритма. Память – один из параметров, который характеризуется тем, что ряд алгоритмов сортировки требуют выделения дополнительной памяти под временное хранение данных. Устойчивость – это параметр, который отвечает за то, что сортировка не меняет взаимного расположения равных элементов. Естественность поведения – параметр, который указывает на эффективность метода при обработке уже отсортированных, или частично отсортированных данных. Алгоритм ведет себя естественно, если учитывает эту характеристику входной последовательности и работает лучше. 3
Виды алгоритмов: Алгоритмы устойчивой сортировки Ø Ø Ø Ø Сортировка выбором (Selection sort) Сортировка пузырьком (англ. Bubble sort ) Сортировка перемешиванием (Cocktail sort, bidirectional bubble sort) Гномья сортировка Сортировка слиянием (Merge sort) Сортировка с помощью двоичного дерева (англ. Tree sort) Алгоритм сортировки Timsort (англ. Timsort) Алгоритмы неустойчивой сортировки Ø Сортировка выбором (Selection sort) Ø Сортировка Шелла (Shell sort) Ø Сортировка расчёской (Comb sort) Ø Пирамидальная сортировка (Сортировка кучи, Heapsort) Ø Плавная сортировка (Smoothsort) 4
Составные части алгоритмов. 1. Функция сравнения пары элементов сортируемого массива 2. Процедура перестановки, меняющая местами пару элементов 3. Сортирующий алгоритм, который осуществляет сравнение и перестановку элементов до тех пор, пока все элементы множества не будут упорядочены. #define less(x, y) (x < y) #define swap(x, y) {int t=x; x=y; y=t; } элементов функция сравнения элементов процедура перестановки 5
Сортировка Шелла. Основная идея алгоритма заключается в том, чтобы вначале устранить массовый беспорядок в массиве, сравнивая далеко стоящие друг от друга элементы. Эффективность сортировки Шелла в определённых случаях обеспечивается тем, что элементы «быстрее» встают на свои места. Эффективность сортировки Шелла сильно зависит от следующих факторов: 1. начального шага 2. от дальнейшей последовательности шагов. 6
7
Сортировка Шелла является довольно интересной модификацией алгоритма сортировки простыми вставками. Рассмотрим следующий алгоритм сортировки массива a[0]. . a[15]. 1. Вначале сортируем простыми вставками каждые 8 групп из 2 -х элементов (a[0], a[8[), (a[1], a[9]), . . . , (a[7], a[15]). 8
2. Потом сортируем каждую из четырех групп по 4 элемента (a[0], a[4], a[8], a[12]), . . . , (a[3], a[7], a[11], a[15]). В нулевой группе будут элементы 4, 12, 13, 18, в первой - 3, 5, 8, 9 и т. п. 3. Далее сортируем 2 группы по 8 элементов, начиная с (a[0], a[2], a[4], a[6], a[8], a[10], a[12], a[14]). 9
4. В конце сортируем вставками все 16 элементов. Очевидно, лишь последняя сортировка необходима, чтобы расположить все элементы по своим местам. Так зачем нужны остальные ? 10
Основной характеристикой сортировки Шелла является приращение расстояние между сортируемыми элементами, в зависимости от прохода. В конце приращение всегда равно единице. Использованный в примере набор. . . , 8, 4, 2, 1 - неплохой выбор, особенно, когда количество элементов - степень двойки. Однако гораздо лучший вариант предложил Р. Седжвик. 11
Сортировка Шелла оказывается лишь красивым теоретическим методом, потому что на практике использовать его нецелесообразно: он сложен в реализации, но не дает такой скорости, какую дают сравнимые с ним по сложности программной реализации методы. 12
Используемые сайты: http: //democoder. ru/article/9 http: //ru. wikipedia. org/ http: //z 0 mbie. daemonlab. org/sort. html 13
14
Баландина Анна МП-12-2.pptx