Элементарные сортировки. Сортировка выбором. Сортировка вставками. Сортировка Шелла. Перетасовка презентация

Содержание

Пример: 2-Sum Подсчет количества инструкций, как функции от N.

Слайд 1Элементарные сортировки


Слайд 2Пример: 2-Sum
Подсчет количества инструкций, как функции от N.


Слайд 3Проблема сортировки
Пример. Список студентов
Сортировка. Переставить N записей в массиве в определенном

порядке

Слайд 4Пример сортировки
Цель. Отсортировать любые типы данных
Пример. Отсортировать случайные вещественные числа в

порядке возрастания

Слайд 5Пример сортировки
Цель. Отсортировать любые типы данных
Пример. Отсортировать строки из файла в

алфавитном порядке

Слайд 6Пример сортировки
Цель. Отсортировать любые типы данных
Пример. Сортировка файлов в директории по

имени

Слайд 7Сортировка выбором


Слайд 8Сортировка выбором
На итерации i найти минимальный оставшийся элемент с индексом min
Поменять

местами a[i] и a[min]

Видео 1

Слайд 9Сортировка выбором
Алгоритм. Сканирование идет слева направо
Элементы слева от стрелки отсортированы и

не меняются
Нет элемента справа от стрелки, который был бы меньше элемента слева от стрелки

Слайд 10Сортировка выбором: внутренний цикл


Слайд 11Сортировка выбором: реализация на Java


Слайд 12Сортировка выбором: математический анализ
Утверждение. Сортировка выбором использует (N-1) + (N-2) +

… + 1 + 0 ~ N2/2 сравнений и N перестановок

Время выполнения не зависит от входных данных. Квадратичное время, даже если массив отсортирован
Перемещение данных минимальное. Перестановки за линейное время


Слайд 13Видео 2


Слайд 14Сортировка вставками


Слайд 15Сортировка вставками
На итерации i поменять a[i] с каждым большим элементом слева


Видео 3

Слайд 16Сортировка вставками
Алгоритм. Сканирование идет слева направо
Элементы слева от стрелки отсортированы по

возрастанию
Элементы справа от стрелки еще не проверены

Слайд 17Сортировка вставками: внутренний цикл


Слайд 18Сортировка вставками: реализация на Java


Слайд 19Сортировка вставками: математический анализ
Утверждение. Сортировка вставками использует ~ N2/4 сравнений и

~ N2/4 перестановок при случайном наборе данных
В среднем каждый ключ проходит половину пути

Слайд 20Сортировка вставками: пример


Слайд 21Видео 4


Слайд 22Сортировка вставками: лучший и худший случай
Лучший случай. Массив отсортирован; необходимо N-1

сравнений и 0 перестановок
A E E L M O P R S T X
Худший случай. Массив отсортирован в обратно порядке и нет дубликатов; ~ N2/2 сравнений и ~ N2/2 вставок
X T S R P O M L E E A

Слайд 23Видео 5


Слайд 24Сортировка вставками: частично упорядоченный массив
Инверсия — пара элементов, которая нарушает упорядоченность

в массиве

Частично упорядоченный массив — массив, в котором количество инверсий <= cN
Массив, каждый элемент которого находится неподалеку от своей окончательной позиции
Небольшой массив, добавленный к большому отсортированному массиву
Массив, в котором лишь несколько элементов находятся не на своем месте
Для частично упорядоченного массива сортировка вставками выполняется за линейное время
Количество перестановок равно количеству инверсий


Слайд 25Видео 6


Слайд 26Сортировка Шелла


Слайд 27Сортировка Шелла: обзор
Идея. Переупорядочить массив так, чтобы каждые h-е элементы (начиная

с любого места в массиве) составляли упорядоченную последовательность

Сортировка Шелла. [Shell 1959] Независимо отсортированные чередующиеся последовательности


Слайд 28h-sorting
Сортировка вставками через шаг h
Большой шаг => маленькие подмассивы
Маленький шаг =>

массив почти упорядочен

Слайд 30Сортировка Шелла
Утверждение. g-отсортированный массив остается g-отсортированным даже после h-сортировки


Слайд 32Сортировка Шелла: реализация на Java


Слайд 34Видео 7


Слайд 35Сортировка Шелла: анализ
Утверждение. В худшем случае количество сравнений при последовательности 3x

+ 1 равно O(N3/2)

Точная модель для сортировки Шелла не разработана.


Слайд 36Чем интересна Сортировка Шелла?
Простая идея дает хорошую производительность
На практике
Работает быстро на

небольших массивах (bzip2/linux kernel)
Проста в реализации и используется во встраиваемых системах
Есть аппаратные реализации
Простой алгоритм, нетривиальная производительность
Асимптотический порядок роста?
Лучшая последовательность?
Производительность в среднем случае?
Некоторые замечательные алгоритмы ждут исследования

Слайд 37Перетасовка


Слайд 38Как перетасовать элементы в массиве?
Цель. Переставить элементы в массиве так, чтобы

они имели равномерное распределение

Слайд 39Сортировка Шелла
Сгенерировать вещественные числа для каждого элемента
Отсортировать массив


Слайд 40Перетасовка Кнута
На итерации i выбрать r между 0 и i при

нормальном распределении
Поменять a[i] и a[r]

Видео 8

Слайд 41Перетасовка Кнута
На итерации i выбрать r между 0 и i при

нормальном распределении
Поменять a[i] и a[r]


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика