Разделы презентаций


Сортировка посредством выбора Пример. Массив содержит целые числа 18, 20, 5,

Содержание

Сортировка вставками

Слайды и текст этой презентации

Слайд 1Сортировка посредством выбора
Пример.
Массив содержит целые числа 18, 20, 5, 13,

15.
O(n2)

Сортировка посредством выбораПример.Массив содержит целые числа 18, 20, 5, 13, 15.O(n2)

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

Сортировка вставками

Слайд 3Сортировка вставками
А = 50, 20, 40, 75, 35
O(n2)

Сортировка вставками А = 50, 20, 40, 75, 35 O(n2)

Слайд 4Сортировка слиянием (продолжение)

Сортировка слиянием (продолжение)

Слайд 5Сортировка слиянием (продолжение)
A[p..q] A[q+1..r]

A[p..r]
n1= q-p+1 A[p..q]
n2=r-q A[q+1..r]
Массив B

– n1
Массив С –n2
A[p..q] B
A[q+1..r] C

Сортировка слиянием (продолжение)A[p..q]    A[q+1..r]    A[p..r]n1= q-p+1  		 A[p..q]  n2=r-q

Слайд 6Сортировка слиянием (продолжение)
Процедура Merge(A, p, q, r)
Вход:
А: массив
p, q, r:

индексы в массиве А. Подмассивы А[p..q] и A[q+1..r] считаются

уже отсортированными.
Результат: подмассив А[p.. r], содержащий все элементы, находившиеся в подмассивах А[p..q] и A[q+1..r], но теперь подмассив А[p.. r] отсортирован.
 
Установить n1 равным q-p+1, n2 – равным r-q.
B[1.. n1+1] и C[1.. n2+1] представляют собой новые массивы.
Скопировать А[p..q] в B[1.. n1] , а A[q+1..r] - в C[1.. n2].
Установить B[n1+1] и C[n2+1] равными «бесконечности».
Установить i и j равными 1.
Для k = p до r
Если B[i] <= C[j], установить A[k] равным B[i] и увеличить i на 1.
В противном случае (B[i]> C [j]) установить A[k] равным C[j] и увеличить j на 1.

Сортировка слиянием (продолжение)Процедура Merge(A, p, q, r)Вход:А: массивp, q, r: индексы в массиве А. Подмассивы  А[p..q]

Слайд 7Слияние сортированных последовательностей

Слияние сортированных последовательностей

Слайд 9Быстрая сортировка
Быстрая сортировка работает «на месте», без привлечения дополнительной памяти.
Асимптотическое

время работы быстрой сортировки для среднего случая отличается от времени

работы для наихудшего случая.

Парадигма « разделяй и властвуй».
Изначально мы хотим отсортировать все n книг
в слотах с первого до n-го
и при этом рассматриваем обобщенную задачу сортировки книг
в слотах с p до r.

Быстрая сортировкаБыстрая сортировка работает «на месте», без привлечения дополнительной памяти.Асимптотическое время работы быстрой сортировки для среднего случая

Слайд 10Быстрая сортировка
Парадигма « разделяй и властвуй».
Этап разделения: «опорная» книга

– индекс 15

Быстрая сортировкаПарадигма « разделяй и властвуй». Этап разделения: «опорная» книга – индекс 15

Слайд 11Быстрая сортировка
Разделение. Сначала выберем одну книгу из слотов от p

до r. Назовем эту книгу опорной. Представим книги на полке

так, чтобы все книги с авторами, идущими в алфавитном порядке до автора опорной книги, находились слева от опорной, а книги с авторами, идущими по алфавиту после автора опорной книги, - справа от последней. После разбиения книги как слева от опорной книги, так и справа, не располагаются в каком-то конкретном порядке.
Властвование. Осуществляется путем рекурсивной сортировки книг слева и справа от опорного элемента. То есть если при разделении опорный элемент вносится в слот q, то рекурсивно сортируются книги в слотах с p по q-1 и с q+1 по r .
Объединение. На этом этапе мы ничего не делаем! После рекурсивной сортировки мы получаем полностью отсортированный массив. Авторы всех книг слева от опорной ( в слотах с p по q-1) идут по алфавиту до автора опорной книги, и книги отсортированы, а авторы всех книг справа от опорной книги (с q+1 по r) идут по алфавиту после автора опорной книги, и все эти книги также отсортированы.

Быстрая сортировкаРазделение. Сначала выберем одну книгу из слотов от p до r. Назовем эту книгу опорной. Представим

Слайд 12Быстрая сортировка
Процедура быстрой сортировки подразумевает вызов процедуры
Partition (A, p,

r), которая разбивает подмассив A[p..r] и возвращает индекс q позиции,

в которую помещается опорный элемент.

Процедура Quicksort(A, p, r)
Вход и результат : те же, что и у процедуры Merge-Sort.
Если p >= r, просто выйти из процедуры, не выполняя никаких действий.
В противном случае выполнить следующее.
Вызвать Partition (A, p, r) и установить значение q равным результату вызова.
Рекурсивно вызвать Quicksort(A, p, q-1).
Рекурсивно вызвать Quicksort(A, q+1, r).

Быстрая сортировкаПроцедура быстрой сортировки подразумевает вызов процедуры Partition (A, p, r), которая разбивает подмассив A[p..r] и возвращает

Слайд 13Быстрая сортировка
Первоначальный вызов Quicksort(A, 1, r) аналогичен вызову процедуры Merge-Sort.


Пример работы процедуры Quicksort с развернутой рекурсией.
Для каждого подмассива,

в котором p<= r, указаны индексы p, q, r.
 
Самое нижнее значение в каждой позиции массива показывает, какой элемент будет находиться в этой позиции по завершении сортировки.
При чтении массива слева направо смотрим на самые нижние значения в каждой позиции, массив отсортирован.
Быстрая сортировкаПервоначальный вызов Quicksort(A, 1, r) аналогичен вызову процедуры Merge-Sort. Пример работы процедуры Quicksort с развернутой рекурсией.

Слайд 14Быстрая сортировка Вызов процедуры Partition
Процедура разбиения книг на полке в слотах

с p по r. В качестве опорной выбираем крайнюю справа

книгу - из слота r. В любой момент каждая книга может находиться в одной из четырех групп, и эти группы располагаются в слотах от p до r слева направо.
 
Группа L (левая) : книги с авторами, о которых известно, что они располагаются в алфавитном порядке до автора опорной книги или написаны автором опорной книги.
Далее идет группа R( правая): книги с авторами, о которых известно, что они располагаются в алфавитном порядке после автора опорной книги.
Затем идет группа U (неизвестная) : книги, которые еще не рассмотрели и не знаем, как их авторы располагаются по отношению к автору опорной книги в алфавитном порядке.
Последней идет группа P (опорная): в нее входит единственная опорная книга.

Мы проходим по книгам группы U слева направо, сравнивая каждую из них с опорной и перемещая ее либо в группу L, либо в группу R, останавливаясь по достижении опорной книги. Книга, которую мы сравниваем с опорной, - всегда крайняя слева в группе U.

Быстрая сортировка Вызов процедуры PartitionПроцедура разбиения книг на полке в слотах с p по r. В качестве

Слайд 15Быстрая сортировка Вызов процедуры Partition ( A, 9,15)

Быстрая сортировка  Вызов процедуры  Partition ( A, 9,15)

Слайд 16Быстрая сортировка Вызов процедуры Partition ( A, 9,15), продолжение.

Быстрая сортировка  Вызов процедуры  Partition ( A, 9,15), продолжение.

Слайд 17Быстрая сортировка Вызов процедуры Partition ( A, 9,15), описание

Если автор книги

находится в алфавитном порядке после автора опорной книги, то книга

становится крайней справа в группе R. Поскольку до этого она была крайней слева в группе U, а за группой U непосредственно следует группа R, мы должны просто переместить разделительную линию между группами R и U на один слот вправо, без перемещения каких-либо книг.

Если автор книги находится в алфавитном порядке до автора опорной книги или совпадает с автором опорной книги, то эта книга становится крайней справа в группе L. Мы обмениваем ее с крайней слева книгой в группе R и перемещаем разделительную линию между группами L и R и между группами R и U на один слот вправо.

Быстрая сортировка Вызов процедуры Partition ( A, 9,15), описаниеЕсли автор книги находится в алфавитном порядке после автора

Слайд 18Быстрая сортировка Вызов процедуры Partition ( A, 9,15), результат.

Быстрая сортировка Вызов процедуры  Partition ( A, 9,15), результат.

Слайд 19Быстрая сортировка
Чтобы преобразовать разбиение книг на полке в разбиение подмассива

A[p..r], мы сначала выбираем крайний справа элемент A[r] в качестве

опорного. Затем мы проходим через подмассив слева направо, сравнивая каждый элемент с опорным. Мы поддерживаем в подмассиве индексы q и u , которые разделяют его следующим образом:
подмассив A[p..q-1] соответствует группе L: каждый его элемент не превышает опорный;
подмассив A[q..u-1] соответствует группе R : каждый его элемент больше опорного;
подмассив A[u..r-1] соответствует группе U: нам пока неизвестно, как его элементы соотносятся с опорным;
элемент A[r] соответствует группе P: это опорный элемент.

Быстрая сортировкаЧтобы преобразовать разбиение книг на полке в разбиение подмассива A[p..r], мы сначала выбираем крайний справа элемент

Слайд 20Быстрая сортировка
Процедура Partition(A, p, r)
Вход: тот же, что и для

процедуры Merge-Sort.
Результат: перестановка элементов A[p..r], такая, что каждый элемент в

A[p..q-1] не превышает A[q], а каждый элемент в A[q+1..r] больше A[q]. Возвращает значение индекса q.
1.Установить q равным p.
2.Для u=p до r-1:
Если A[u]<=A[r], обменять А[q] с A[u], а затем увеличить q на 1.
3.Обменять А[q] с A[r], а затем вернуть q.
Быстрая сортировкаПроцедура Partition(A, p, r)Вход: тот же, что и для процедуры Merge-Sort.Результат: перестановка элементов A[p..r], такая, что

Слайд 21Быстрая сортировка Процедура Partition(A, p, r): перестановка элементов A[p..r], такая, что каждый

элемент в A[p..q-1] не превышает A[q], а каждый элемент в

A[q+1..r] больше A[q]. Возвращает значение индекса q. 1.Установить q равным p. 2.Для u=p до r-1: Если A[u]<=A[r], обменять А[q] с A[u], а затем увеличить q на 1. 3.Обменять А[q] с A[r], а затем вернуть q.
Быстрая сортировка  Процедура Partition(A, p, r):  перестановка элементов A[p..r], такая, что каждый элемент в A[p..q-1]

Слайд 22Быстрая сортировка

На предыдущем слайде(21) показано как работает процедура Partition с

подмассивом A[5..10], созданным при первом разбиении в примере с быстрой

сортировки на слайде 13.
Быстрая сортировкаНа предыдущем слайде(21) показано как работает процедура Partition с подмассивом A[5..10], созданным при первом разбиении в

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

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

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

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

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


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

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