
- •Структуры и алгоритмы обработки данных
- •230100.62 – Информатика и вычислительная техника
- •Стандартная постановка задачи
- •Пример постановки задачи
- •Пример постановки задачи в стандартной форме
- •Алгоритмы и их сложность
- •Основы анализа программ
- •Пример анализа алгоритмов
- •Выполнение операторов программы
- •Основы доказательства корректности
- •Динамическое программирование
- •Перемножение нескольких матриц
- •Когда применимо динамическое программирование
- •Наибольшая общая подпоследовательность
- •Жадные алгоритмы
- •Задача о выборе заявок
- •Абстрактные типы данных
- •Атд «Список»
- •Атд «Стек»
- •Атд «Очередь»
- •Множества
- •Хеширование
- •Словари, основанные на хеш-таблицах
- •Поиск слова в тексте
- •Сортировка
- •Сортировка вставками
- •Корневая сортировка
- •Пирамидальная сортировка
- •Переформирование пирамиды
- •Построение пирамиды
- •Сортировка слиянием
- •Управление с помощью таблиц
- •Способы представления графа
- •Матрица смежности
- •Матрица инцидентности
- •Список рёбер
- •Алгоритмы обхода графа
- •Поиск в ширину
- •Задача о кратчайшем пути
- •Алгоритм Дейкстры
- •Алгоритм Беллмана-Форда
- •Задача перекресток
- •Максимальный поток
- •Метод Форда-Фалкерсона
- •Минимальные покрывающие деревья
- •Алгоритм Крускала
- •Алгоритм Прима
- •Минимальные покрывающие деревья
- •Поиск в глубину
- •Топологическая сортировка
- •Деревья
Министерство образования и науки Российской Федерации
Государственное образовательное учреждение высшего
профессионального образования
«Новгородский государственный университет имени Ярослава Мудрого»
Кафедра информационных технологий и систем
Структуры и алгоритмы обработки данных
Дисциплина по направлению
230100.62 – Информатика и вычислительная техника
Лекции
Разработал
ст. преподаватель кафедры ИТИС
________________П.М. Довгалюк
_____ ________________2012 г.
Принято на заседании кафедры
Заведующий кафедрой
______________А.Л. Гавриков
_____ ________________2012 г.
Оглавление
1 Стандартная постановка задачи 4
1.1 Пример постановки задачи 8
1.2 Пример постановки задачи в стандартной форме 8
2 Алгоритмы и их сложность 8
3 Основы анализа программ 12
3.1 Пример анализа алгоритмов 22
4 Выполнение операторов программы 23
4.1 Основы доказательства корректности 25
4.2 Правила вывода 25
4.2.1 Правило вывода Р1 – усиление предусловия и ослабление постусловия 25
4.2.2 Правило вывода А1 – получение предусловия оператора присваивания 26
4.2.3 Правило вывода IF1 - Проверка предусловия условного оператора 26
4.2.4 Правило вывода IF2 – Получение предусловия условного оператора 26
4.2.5 Правило вывода IF3 –Условный оператор 27
4.2.6 Правило вывода IF4 – Условный оператор 27
4.2.7 Правило вывода S1 – Последовательность операторов 27
4.2.8 Правило вывода W1 – Цикл с условием продолжения без инициализации 27
4.2.9 Правило вывода W2 – Цикл с условием продолжения с инициализацией 28
4.2.10 Правило вывода DC1 – разделяй и властвуй 29
4.2.11 Правило вывода DC2 – разделяй и властвуй 29
4.2.12 Правило вывода DC3 – разделяй и властвуй 29
4.2.13 Правило вывода DC4 – разделяй и властвуй 29
5 Инвариант цикла 30
6 Динамическое программирование 32
6.1 Перемножение нескольких матриц 33
6.2 Когда применимо динамическое программирование 37
6.3 Наибольшая общая подпоследовательность 37
7 Жадные алгоритмы 40
7.1 Задача о выборе заявок 40
8 Абстрактные типы данных 41
8.1 АТД «Список» 42
8.2 АТД «Стек» 43
8.3 АТД «Очередь» 43
8.4 Множества 45
9 Хеширование 46
10 Поиск слова в тексте 49
11 Сортировка 51
11.1 Сортировка вставками 51
11.2 Корневая сортировка 52
11.3 Пирамидальная сортировка 53
11.3.1 Переформирование пирамиды 53
11.3.2 Построение пирамиды 55
11.4 Сортировка слиянием 55
12 Управление с помощью таблиц 58
13 Графы 58
13.1 Способы представления графа 59
13.1.1 Матрица смежности 59
13.1.2 Матрица инцидентности 59
13.1.3 Список рёбер 59
13.2 Алгоритмы обхода графа 59
13.2.1 Поиск в ширину 60
13.3 Задача о кратчайшем пути 61
13.4 Алгоритм Дейкстры 65
13.5 Алгоритм Беллмана-Форда 69
13.6 Задача перекресток 73
13.7 Максимальный поток 76
13.8 Метод Форда-Фалкерсона 77
13.9 Минимальные покрывающие деревья 84
13.9.1 Алгоритм Крускала 88
13.9.2 Алгоритм Прима 89
13.10 Минимальные покрывающие деревья 90
13.11 Поиск в глубину 93
13.12 Топологическая сортировка 101
14 Деревья 102
14.1 АВЛ-деревья 103
Стандартная постановка задачи
Стандартная постановка задачи
Включает:
наименование задачи (схематическое определение);
общее описание (краткое изложение задачи);
ввод;
вывод;
ошибки (явно перечислены необычные варианты ввода и указаны те действия, которые предпримет машина в подобных ситуациях);
пример (передает сущность задачи и иллюстрирует различные случаи)
Шаги процесса программирования
Шаг1
Шаг 2
Шаг 3
Шаг 4
Шаг 5
Шаг 6