Алгоритмы и структуры данных. Сортировка обменом Pump. Тема 5

Скачать презентацию на тему: "Алгоритмы и структуры данных. Сортировка обменом Pump. Тема 5" с количеством слайдов в размере 32 страниц. У нас вы найдете презентацию на любую тему и для каждого класса школьной программы. Мы уверены, что наши слайды помогут найти вам свою аудиторию. Весь материал предоставлен бесплатно, в знак благодарности мы просим Вас поделиться ссылками в социальных сетях и по возможности добавьте наш сайт MirPpt.ru в закладки.

Нажмите для просмотра
Алгоритмы и структуры данных. Сортировка обменом Pump. Тема 5

1: Алгоритмы и Алгоритмы и структуры данных Тема 5 Сортировка обменом

2:

3:

4: Исходные данные: последовательность из элементов; если специально не оговорено иное будем полагать, что элементы последовательности – это целые положительные числа. Исходные данные: последовательность из элементов; если специально не оговорено иное будем полагать, что элементы последовательности – это целые положительные числа. Требования: найти перестановку элементов , для которой выполняться заданное отношение порядка , или (1) . (2) По умолчанию сортируем по возрастанию (1). Если специально не оговорено иное полагаем, что исходные данные представляются одномерным массивом целых положительных чисел.

5: Для чего нужна сортировка? Для чего нужна сортировка? Для обеспечения эффективности извлечения и обработки данных. И, прежде всего, для поиска. В этом отношении говоря об эффективности следует всегда помнить о том, что общая трудоемкость массовой обработки массива данных оценивается величиной , – трудоемкость сортировки массива данных; – общее число обращений к массиву данных; – трудоемкость поиска в массиве данных; – трудоемкость обработки массива данных.

6: Упорядочение данных окупиться с лихвой. Потому, что поиск данных в упорядоченном массиве на порядки быстрее, чем в массиве неупорядоченном. В особенности для Big Data. Упорядочение данных окупиться с лихвой. Потому, что поиск данных в упорядоченном массиве на порядки быстрее, чем в массиве неупорядоченном. В особенности для Big Data. Для чего еще изучать сортировку? Помимо практической значимости алгоритмы сортировки по праву считаются фундаментом ТА, поскольку в них заложено поистине огромное количество разнообразных эффективных приемов обработки данных. Изучение которых позволит успешно конструировать и применять новые алгоритмы обработки данных.

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

8: Строго говоря сортируемые элементы – это некоторые записи, каждая из которых имеет ключ, управляющий процессом сортировки и данные (Кнут Д. , 295 с. ). Такое определение пришло из БД; оно связано с необходимостью обработки таблиц (где: записи, их ключи и данные?): Строго говоря сортируемые элементы – это некоторые записи, каждая из которых имеет ключ, управляющий процессом сортировки и данные (Кнут Д. , 295 с. ). Такое определение пришло из БД; оно связано с необходимостью обработки таблиц (где: записи, их ключи и данные?): https://docs. oracle. com/cd/E4163301/pt853pbh1/eng/pt/tapd/img/ia2cf27cn-7792. png Если специально не оговорено иное под элементами будем понимать некоторую числовую последовательность.

9:

10: Сортировка обменом (пузырьковая сортировка, шейкерная сортировка, быстрая сортировка …). Сортировка обменом (пузырьковая сортировка, шейкерная сортировка, быстрая сортировка …). Сортировка выбором (линейная сортировка, выбор на дереве, пирамидальная сортировка …). Сортировка распределением (поразрядная сортировка …). Сортировка слиянием (двух путевое слияние …). Сортировка вставкой (простая вставка, бинарная вставка …). Сортировка подсчетом, когда классическая сортировка (процедура перестановки элементов местами) заменяется процедурами подсчета частоты элементов и их вывода в виде упорядоченной последовательности

11: Приведенная классификация условна, поскольку алгоритмы могут относится к нескольким классам одновременно. Поскольку работают на основе нескольких принципов. Приведенная классификация условна, поскольку алгоритмы могут относится к нескольким классам одновременно. Поскольку работают на основе нескольких принципов. Помимо указанных выше существуют немало модификаций и дополнительных классификаций алгоритмов сортировки. Источники и ресурсы по теме Дональд Э. Кнут Искусство программирования. Том 3. Сортировка и поиск https://www. twirpx. com/file/32943/ Коллекция сортировок http://sorting. valemak. com/radix/ Тема 1. Литература и ресурсы Сегодня займемся рассмотрением алгоритмов Сортировки обменом

12:

13: Пожалуй, наиболее очевидный способ обменной сортировки – сравнивать попарно смежные элементы, (), слева направо: первый со вторым, второй с третьим и так далее. Если порядок в паре неверный, (), элементы меняются местами. Таким образом, наибольшие элементы продвигаются вправо – к концу массива, а наименьшие – к его началу. Пожалуй, наиболее очевидный способ обменной сортировки – сравнивать попарно смежные элементы, (), слева направо: первый со вторым, второй с третьим и так далее. Если порядок в паре неверный, (), элементы меняются местами. Таким образом, наибольшие элементы продвигаются вправо – к концу массива, а наименьшие – к его началу. В конце итерации наибольший элемент из неупорядоченной части массива занимает свое место в конце этой неупорядоченной части. Повторив такую итерацию сравнений и обменов раз (где – число элементов массива) получим упорядоченный массив. Рассмотрим пример.

14: Синим выделены элементы исходного массива, жирным – упорядоченная последовательность его элементов, зеленым (жёлтым) – проверяемая пара смежных элементов, для которой выполняется (не выполняется) отношение порядка: . Синим выделены элементы исходного массива, жирным – упорядоченная последовательность его элементов, зеленым (жёлтым) – проверяемая пара смежных элементов, для которой выполняется (не выполняется) отношение порядка: .

15: Сортировка считается адекватной при одновременном выполнении трех условий: Сортировка считается адекватной при одновременном выполнении трех условий: 1) количество элементов в исходном и отсортированном массивах должно совпадать; 2) поэлементный состав исходного и отсортированного массивов должен совпадать; 3) для элементов отсортированного массива должно выполняться заданное отношение порядка по возрастанию или по убыванию , или (1) . (2)

16: 1) Сортировка по убыванию (проверяем отношение ). 1) Сортировка по убыванию (проверяем отношение ). 2) Изменение направления просмотра массива. 3) Шейкерная сортировка 4) Остановка по готовности (или двунаправленная)

17: Отсортировать массив: Отсортировать массив: 1) пузырьком и 2) шейкером с остановкой по готовности.

18: Алгоритм обмена с временным хранилищем Алгоритм обмена с временным хранилищем Арифметический алгоритм обмена переменных целого типа Этот алгоритм будет прерываться на системах, которые перехватывают переполнение целого. https://ru. wikipedia. org/wiki/АлгоритмобменаприпомощиисключающегоИЛИ

19: Используя алгоритм обмена при помощи исключающего ИЛИ не требуется ни временное хранилище, ни определение переполнения. Алгоритм в данном случае таков Используя алгоритм обмена при помощи исключающего ИЛИ не требуется ни временное хранилище, ни определение переполнения. Алгоритм в данном случае таков https://ru. wikipedia. org/wiki/АлгоритмобменаприпомощиисключающегоИЛИ Стоит ли уходить от простого обмена с временным хранилищем???

20: Давайте оценим трудоемкость сортировки применением пузырька, шейкера и шейкера с остановкой по готовности. Кто желает помочь? Давайте оценим трудоемкость сортировки применением пузырька, шейкера и шейкера с остановкой по готовности. Кто желает помочь?

21: Трудоемкость пузырька (по порядку величины) Трудоемкость пузырька (по порядку величины) . Трудоемкость шейкера с остановкой по готовности 1) лучший случай (массив упорядочен, требуется один проход) ; 2) худший случай (массив упорядочен в обратном порядке, требуется проход) .

22: Рассматривается шейкер с остановкой по готовности. Рассматривается шейкер с остановкой по готовности. Достоинства: применим для любых чисел не требуются вспомогательные структуры данных достаточно высокая эффективность реализации на: значительно упорядоченных выборках, малых выборках, так как не требуется обслуживать вспомогательные структуры данных; и это несмотря на квадратичную трудоемкость. Недостаток – квадратичная трудоемкость (плохо на больших, и тем более, – на неупорядоченных выборках).

23: В первом приближении трудоемкость оценивается по порядку величины лишь числом операций сравнения без учета операций тела цикла. При этом для многих алгоритмов характерна ситуация наличия двух граничных оценок трудоемкости, отвечающих лучшему и худшему случаю; что будет в конкретной ситуации заранее неизвестно. В первом приближении трудоемкость оценивается по порядку величины лишь числом операций сравнения без учета операций тела цикла. При этом для многих алгоритмов характерна ситуация наличия двух граничных оценок трудоемкости, отвечающих лучшему и худшему случаю; что будет в конкретной ситуации заранее неизвестно. Поэтому перед практическим использованием алгоритма сортировки целесообразно экспериментально уточнить оценку трудоемкости (числом арифметических операций) и произвести сравнительный анализ его трудоемкости с аналогами. Причем для статистически значимой выборки данных. В такой ситуации можно объективно выбрать наилучший алгоритм для рассматриваемых данных.

24:

25: Вначале сравнивают первый и последний элементы (). Если порядок в паре верный, уменьшается на единицу, первый элемент сравнивается с предпоследним и т. д. ; иначе, (), элементы меняются местами и свечка сжигается с другого конца – теперь при сравнениях не уменьшается, а увеличивается на единицу. Если в ходе сравнений произойдет еще один обмен, опять будем уменьшать и т. д. В конце такой итерации индексы сходятся в некотором элементе . Этот элемент занял свое место; слева от него массив элементов не больших , а справа – массив элементов не меньших . Эти массивы сортируют аналогично. Так продолжается до тех пор, пока массивы не превратятся в элементы. Рассмотрим пример. Вначале сравнивают первый и последний элементы (). Если порядок в паре верный, уменьшается на единицу, первый элемент сравнивается с предпоследним и т. д. ; иначе, (), элементы меняются местами и свечка сжигается с другого конца – теперь при сравнениях не уменьшается, а увеличивается на единицу. Если в ходе сравнений произойдет еще один обмен, опять будем уменьшать и т. д. В конце такой итерации индексы сходятся в некотором элементе . Этот элемент занял свое место; слева от него массив элементов не больших , а справа – массив элементов не меньших . Эти массивы сортируют аналогично. Так продолжается до тех пор, пока массивы не превратятся в элементы. Рассмотрим пример.

26: Синим выделен элементы исходного массива, красным – элементы на своих местах, зеленым (жёлтым) – проверяемая пара элементов, для которой выполняется (не выполняется) отношение порядка: . Жирным выделена сдвигаемая граница. Синим выделен элементы исходного массива, красным – элементы на своих местах, зеленым (жёлтым) – проверяемая пара элементов, для которой выполняется (не выполняется) отношение порядка: . Жирным выделена сдвигаемая граница.

27: Сортировка по убыванию (проверяем отношение ). Сортировка по убыванию (проверяем отношение ). Изменение направления просмотра массива. Границы одноэлементных массивов, (), в стек не помещаются потому, что такие массивы уже упорядочены. Границы двухэлементных массивов, (), в стек не помещаются. Такие массивы обрабатывается «на лету»: если , тогда меняем эти элементы местами; иначе элементы уже на своем месте.

28: Отсортировать массив модифицированным алгоритмом быстрой сортировки без помещения в стек одно- и двух-элементных массивов. Отсортировать массив модифицированным алгоритмом быстрой сортировки без помещения в стек одно- и двух-элементных массивов.

29: Давайте оценим трудоемкость быстрой сортировки. Кто желает помочь? Давайте оценим трудоемкость быстрой сортировки. Кто желает помочь?

30: Лучший случай (массив каждый раз делится пополам) Лучший случай (массив каждый раз делится пополам) . Худший случай (массив упорядочен) .

31: Особенности: 1) большинство обменов будет полуобменами (простые пересылки), поскольку один из ключей (который вначале итерации совпадает с левой границей массива) все время будет в регистре, и его не нужно записывать до самого конца итерации; 2) в стеке одновременно будет находиться не более пар ссылок (Кнут Д. , 142 с. ). Особенности: 1) большинство обменов будет полуобменами (простые пересылки), поскольку один из ключей (который вначале итерации совпадает с левой границей массива) все время будет в регистре, и его не нужно записывать до самого конца итерации; 2) в стеке одновременно будет находиться не более пар ссылок (Кнут Д. , 142 с. ). Достоинства – неплохая оценка трудоемкости для наилучшего случая, применимость для любых чисел. Недостатки: квадратичная трудоемкость в наихудшем случае; неэффективность на малых объемах данных в связи с необходимостью использования стека и выполнения большого объема вспомогательных вычислений.

32: Тема лабораторной работы 4: Программная реализация алгоритмов сортировки обменом Тема лабораторной работы 4: Программная реализация алгоритмов сортировки обменом Задание (обязательно): программная реализация и сравнительный анализ эффективности алгоритмов (вычислять коэффициент прироста трудоемкости) Задание (опционально): программная реализация быстрой сортировки.

Скачать презентацию


MirPpt.ru