Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
42 слайда
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
2.69 MB
Просмотров:
65
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Рекурсия
№2 слайд
Содержание слайда: Пример бесконечной рекурсии
У попа была собака, он её любил,
Она съела кусок мяса, он её убил,
В землю закопал,
Надпись написал:
У попа была собака, он её любил,
Она съела кусок мяса, он её убил,
В землю закопал,
Надпись написал:
№3 слайд
Содержание слайда: Рекурсивная функция
function arifmPr(base, iter: integer): integer;
begin
if iter = 1 then
arifmPr:= base
else
arifmPr:= arifmPr(base, iter - 1) + base;
end;
№4 слайд
Содержание слайда: Рекурсивная функция
arifmPr(2, 4)
arifmPr:= arifmPr(2,3)+2
arifmPr:= 8+2
arifmPr(2, 3)
arifmPr:= arifmPr(2,2)+2
arifmPr:= 6+2
arifmPr(2, 3)
arifmPr:= arifmPr(2,2)+2
arifmPr:= 4+2
arifmPr(2, 2)
arifmPr:= arifmPr(2,1)+2
arifmPr:= 2+2
arifmPr(2, 1)
arifmPr:= 2
№5 слайд
Содержание слайда: Сортировка слиянием
(Mergesort)
№6 слайд
Содержание слайда: Два классических алгоритма сортировки
Критические компоненты в мировой вычислительной инфраструктуре
Понимание научных основ этих алгоритмов даст нам возможность разрабатывать прикладные системы для решения реальных задач
Быстрая сортировка входит в десятку самых полезных алгоритмов, разработанных в 20-м веке
№7 слайд
Содержание слайда: Сортировка слиянием
Основной план
Разделить массив на две половины
Рекурсивно отсортировать каждую половину
Соединить две половины
№8 слайд
Содержание слайда: Сортировка слиянием
Цель. Получить два отсортированных подмассива от a[lo] до a[mid] и от a[mid+1] до a[hi]
Видео 1
№9 слайд
Содержание слайда: Слияние: реализация на Java
№10 слайд
Содержание слайда: Assertions
Assertion. Оператор для тестирования программы
Помогает обнаружить логические ошибки
Документирует код
Java assert оператор. Генерирует исключительную ситуацию, если условие не верно
№11 слайд
Содержание слайда: Сортировка слиянием: реализация на Java
№12 слайд
Содержание слайда: Сортировка слиянием: трассировка
№13 слайд
Содержание слайда: Видео 2
Видео 2
№14 слайд
Содержание слайда: Сортировка слиянием: эмпирический анализ
Оценка времени выполнения:
На ПК 108 сравнений/секунду
На суперкомпьютере 1012 сравнений/секунду
№15 слайд
Содержание слайда: Сортировка слиянием: количество сравнений и обращений к массиву
Утвержение. Сортировка слиянием использует NlogN сравнений и 6 NlogN обращений для сортировки массива размером N
Доказательство. C(N) — количество сравнений, A(N) — количество обращений
№16 слайд
Содержание слайда: Разделяй и властвуй
Утверждение. Если D(N) удовлетворяет D(N) = 2D(N/2) + N, где N > 1 и D(1) = 0, то D(N) = Nlog2N
№17 слайд
Содержание слайда: Разделяй и властвуй
Утверждение. Если D(N) удовлетворяет D(N) = 2D(N/2) + N, где N > 1 и D(1) = 0, то D(N) = Nlog2N
№18 слайд
Содержание слайда: Разделяй и властвуй
Утверждение. Если D(N) удовлетворяет D(N) = 2 D(N/2) + N, где N > 1 и D(1) = 0, то D(N) = Nlog2N
№19 слайд
Содержание слайда: Анализ сортировки слиянием: память
Утверждение. Сортировка слиянием использует дополнительную память пропорциональную N
Массиву aux[] нужен N ячеек для последнего слияния
№20 слайд
Содержание слайда: Сортировка слиянием: реализация
Используйте сортировку вставками для маленьких подмассивов
Сортировка слиянием очень дорогая для маленьких подмассивов
Подмассивы для сортировки вставками ~ 7
№21 слайд
Содержание слайда: Сортировка слиянием: реализация
Остановка если все отсортировано
Если самый большой элемент первой половины <= самому маленькому элементу второй половины, то подмассив отсортирован
Полезно для частично-упорядоченного массива
№22 слайд
Содержание слайда: Сортировка слиянием: реализация
Ограничить копирование во вспомогательный массив
Экономит время (но не память). Менять местами основной и вспомогательный массив при рекурсивном вызове
№23 слайд
Содержание слайда: Сортировка слиянием: визуализация
№24 слайд
Содержание слайда: Восходящая сортировка слиянием
(Bottom-up mergesort)
№25 слайд
Содержание слайда: Восходящая сортировка слиянием
Начинаем со слияния подмассивов с размером 1
Повторяем для подмассивов с размерами 2, 4, 8, 16, ...
№26 слайд
Содержание слайда: Восходящая сортировка слиянием: реализация на Java
Итог. Простая и не рекурсивная версия сортировки слиянием (работает на 10% медленнее, чем нисходящая сортировка слиянием)
№27 слайд
Содержание слайда: Восходящая сортировка слиянием: визуализация
№28 слайд
Содержание слайда: Сложность сортировки
№29 слайд
Содержание слайда: Сложность сортировки
Вычислительная сложность - основа для обучения эффективным алгоритмам для решения конкреной проблемы Х
Вычислительная модель. Возможные операции
Стоимость модели. Количество операций
Верхняя граница. Стоимость, гарантированная определенным алгоритмам для задачи Х
Нижняя граница. Доказанное ограничение стоимости для всех алгоритмов для задачи Х
Оптимальный алгоритм. Алгоритм с лучшей максимально возможной стоимостью для задачи Х (когда верхняя и нижняя граница приблизительно совпадают)
Пример: сортировка
Вычислительная модель: дерево принятия решений
Стоимость модели: количество сравнений
Верхняя граница: ~ Nlog2N для сортировки слиянием
Нижняя граница: ?
Оптимальный алгоритм: ?
№30 слайд
Содержание слайда: Дерево принятия решений (для 3-х элементов)
№31 слайд
Содержание слайда: Нижняя граница для сортировки на основе сравнений
Утверждение. Ни один алгоритм сортировки, основанный на сравнениях, не может гарантировать упорядочить N элементов, выполнив менее log2(N!) ~ Nlog2(N) сравнений
Доказательство
Все элементы массива различны
В худшем случае высота дерева будет h
Бинарное дерево высотой h имеет максимум 2h листьев
N! <= количество листьев <= 2h
№32 слайд
Содержание слайда: Нижняя граница для сортировки на основе сравнений
Утверждение. Ни один алгоритм сортировки, основанный на сравнениях, не может гарантировать упорядочить N элементов, выполнив менее log2(N!) ~ Nlog2(N) сравнений
Доказательство
Все элементы массива различны
В худшем случае высота дерева будет h
Бинарное дерево высотой h имеет максимум 2h листьев
N! <= количество листьев <= 2h
№33 слайд
Содержание слайда: Сложность сортировки
Вычислительная модель. Возможные операции
Стоимость модели. Количество операций
Верхняя граница. Стоимость, гарантированная определенным алгоритмам для задачи Х
Нижняя граница. Доказанное ограничение стоимости для всех алгоритмов для задачи Х
Оптимальный алгоритм. Алгоритм с лучшей максимально возможной стоимостью для задачи Х (когда верхняя и нижняя граница приблизительно совпадают)
Пример: сортировка
Вычислительная модель: дерево принятия решений
Стоимость модели: количество сравнений
Верхняя граница: ~ Nlog2N для сортировки слиянием
Нижняя граница: ~ Nlog2N
Оптимальный алгоритм: сортировка слиянием
Первая цель разработки алгоритмов: оптимальный алгоритм
№34 слайд
Содержание слайда: Сложность сортировки
Сравнения? Сортировка слиянием оптимальна по количеству сравнений
Память? Сортировка слиянием не оптимальна по памяти
№35 слайд
Содержание слайда: Сложность сортировки
Можно снизить нижнюю границу для сортировки если есть информация о:
Упорядоченности входных данных
Распределении значений ключей
Представлении ключей
Частично-упорядоченный массив
Дубликаты ключей. Зная распределение дубликатов во входных данных, мы можем отказаться от NlogN
Представление ключей. Можем использовать цифровые/символьные сравнения ключей вместо сравнений номеров и строк
№36 слайд
Содержание слайда: Устойчивость сортировок
№37 слайд
Содержание слайда: Устойчивость
Типичная задача. Отсортировать сначала по имени, а затем, по группам
№38 слайд
Содержание слайда: Устойчивость
Сортировка вставками и сортировка слиянием устойчивы (но не выборочная и Шелла)
№39 слайд
Содержание слайда: Устойчивость: сортировка вставками
Сортировка вставками устойчива
Равные элементы не передвигаются
№40 слайд
Содержание слайда: Устойчивость: выборочная сортировка
Выборочная сортировка не устойчива
Передвижения элементов на большие расстояния может нарушить порядок
№41 слайд
Содержание слайда: Устойчивость: сортировка Шелла
Сортировка Шелла не устойчива
Передвижения элементов на большие расстояния может нарушить порядок
№42 слайд
Содержание слайда: Устойчивость: сортировка слиянием
Сортировка слиянием устойчива
Если ключи равны, то берутся элементы из левого подмассива