Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Зачет по инфе.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
336.26 Кб
Скачать

13.4 Алгоритм вставки элемента в отсортированный массив.

Если есть необходимость создать и поддерживать в отсортированном виде массив, то существует два варианта решения этой задачи:

•вставлять элементы массив, а затем сортировать его,

•вставлять элемент в массив так, что бы он оставался отсортированным.

Рассмотрим второй вариант. Задача сводится к вычислению положения нового элемента в отсортированном массиве. После определения позиции элемент просто вставляется. Для вычисления позиции для вставки можно использовать один из рассмотренных выше алгоритмов поиска. Учитывая то, что массив отсортирован разумно использовать быстрый бинарный (или интерполяционный) поиск для поиска места вставки.

13.5 Алгоритм поиска минимального (максимального) элемента массива.

Сортировка это упорядочение данных в соответствии с заданными критериями. С данными удобнее работать если они отсортированы. Например алгоритм бинарного поиска работает гораздо быстрее алгоритма последовательного поиска. Существуют десятки различных видов сортировки. Каждый со своими достоинствами и недостатками. Рассмотрим некоторые простейшие алгоритмы сортировки.

13.6 Алгоритм пузырьковой сортировки.

Работает алгоритм следующим образом, проверяем два соседних элемента если первый элемент больше второго, то переставляем их местами. Продолжаем выполнять выше описанные действия до тех пор пока не будет отсортирован весь массив. В наихудшем случае минимальный элемент будет находится в конце массива. Так как, за одну итерацию элемент перемещается только на одну позицию, то потребуется n-1 итерация для сортировки всего массива в наихудшем случае.

13.7 Алгоритм сортировки перемешиванием.

Сортировка перемешиванием (Шейкерная сортировка) – разновидность пузырьковой сортировки. Анализируя метод пузырьковой сортировки можно отметить два обстоятельства.

Во-первых, если при движении по части массива перестановки не происходят, то эта часть массива уже отсортирована и, следовательно, ее можно исключить из рассмотрения.

Во-вторых, при движении от конца массива к началу минимальный элемент “всплывает” на первую позицию, а максимальный элемент сдвигается только на одну позицию вправо.

Эти две идеи приводят к следующим модификациям в методе пузырьковой сортировки. Границы рабочей части массива (т.е. части массива, где происходит движение) устанавливаются в месте последнего обмена на каждой итерации. Массив просматривается поочередно справа налево и слева направо.

Лучший случай для этой сортировки – отсортированный массив О(n), худший – отсортированный в обратном порядке O(n²).

Наименьшее число сравнений в алгоритме Шейкер-сортировки C=N-1. Это соответствует единственному проходу по упорядоченному массиву (лучший случай).

13.8 Алгоритм сортировки прочесыванием.

Рассмотрим еще один алгоритм улучшающий пузырьковую сортировку – сортировку методом прочесывания. Улучшение алгоритма заключается в том, что меняются местами не два соседних элемента, а два элемента отстоящих друг от друга на некоторое расстояние. При каждом проходе расстояние между элементами уменьшается до тех пор пока не достигнет единицы в этом случае имеет место пузырьковая сортировка. Процесс останавливается после выполнения двух условий: расстояние между элементами стало равным единице и за проход не было выполнено ни одной перестановки элементов. Экспериментально получены следующие оптимальные параметры алгоритма: на каждом проходе необходимо уменьшать расстояние между элементами в 1.3 раза, расстояния 9 и 10 являются не оптимальными.