Содержание
- 2. Стек: изменение размера массива Проблема. От клиента требуется указывать размер стека Как увеличивать и уменьшать размер
- 3. Стек: изменение размера массива Если массив полон, то создать новый массив в два раза больше и
- 4. Стек: амортизированная стоимость добавления в стек Стоимость добавления первых N элементов: N + (2 + 4
- 5. Стек: изменение размера массива Как изменять размер массива? Первый подход push(): увеличивать размер массива s[] в
- 6. Стек: изменение размера массива Эффективный подход push(): увеличивать размер массива s[] в два раза, когда массив
- 7. Стек: изменение размера массива
- 8. Стек: амортизированный анализ Предположение. Начиная с пустого стека, последовательность из M push/pop операций занимает время пропорциональное
- 9. Стек: использование памяти Предположение. Используется от ~ 8N до ~ 32N байт для стека из N
- 10. Очередь с приоритетом (Priority Queue)
- 11. Очередь с приоритетом Коллекции. Вставка и удаление элементов. Какой элемент удалять? Стек. LIFO Очередь. FIFO Рандомизированная
- 12. API очереди с приоритетом Требование. Элементы должны быть сравнимы
- 13. Использование очереди с приоритетам
- 14. Пример очереди с приоритетом Задача. Найти наибольшие М элементов в потоке из N элементов Отслеживание транзакций
- 15. Пример очереди с приоритетом Задача. Найти наибольшие М элементов в потоке из N элементов Отслеживание транзакций
- 16. Пример очереди с приоритетом Задача. Найти наибольшие М элементов в потоке из N элементов
- 17. Очередь с приоритетом: неупорядоченная и упорядоченная реализация
- 18. Очередь с приоритетом: неупорядоченная реализация
- 19. Пример очереди с приоритетом Задача. Все операции эффективны
- 20. Бинарная пирамида (Binary Heaps)
- 21. Полное бинарное дерево Бинарное дерево. Пустота или узел с левым и правым бинарным поддеревом Полное дерево.
- 22. Полное бинарное дерево
- 23. Бинарная пирамида Бинарная пирамида. Пирамидально упорядоченное полное бинарное дерево можно представить в виде массива Пирамидально упорядоченное
- 24. Бинарная пирамида Самый большой ключ находится в корне по адресу а[1] Пользуйтесь индексами для перемещения по
- 25. Продвижение в пирамиде Если дочерний узел больше родительского Поменять местами дочерний и родительский узел Повторять до
- 26. Вставка в пирамиде Вставка. Добавить узел в конец и поднимать его выше Стоимость. Не более 1+log2N
- 27. Спуск в пирамиде Если родительский узел меньше одного (или двух) дочерних Поменять местами родительский и больший
- 28. Удалить максимальный узел в пирамиде Удаление максимального узла. Поменять корень с последним узлом и спустить его
- 29. Бинарная пирамида Вставка. Добавить узел в конец и поднимать его выше Удаление максимального узла. Поменять корень
- 30. Бинарная пирамида: реализация на Java
- 31. Реализация очереди с приоритетом
- 34. Пирамидальная сортировка (Heapsort)
- 35. Пирамидальная сортировка Создать пирамиду из всех N ключей Повторять удаление максимального ключа
- 36. Пирамидальная сортировка
- 37. Пирамидальная сортировка Конструктор пирамиды. Создать max пирамиду восходящим методом Видео 2 Видео 3
- 38. Пирамидальная сортировка: конструктор Первый проход. Создать пирамиду используя восходящий метод
- 40. Пирамидальная сортировка Второй проход Удалять максимум поочередно Восстановить порядок в пирамиде
- 42. Пирамидальная сортировка: реализация на Java
- 43. Пирамидальная сортировка
- 44. Пирамидальная сортировка
- 45. Пирамидальная сортировка: математический анализ Первый проход Второй проход Значение. Алгоритм, не требующий дополнительной памяти и работающий
- 47. Скачать презентацию