Лекция №1. Введение. Предмет "Структуры и алгоритмы...
TRANSCRIPT
![Page 1: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/1.jpg)
Хакасский государственный университет им. Н.Ф. Катанова
Структуры и алгоритмы обработки данных
Лекция: Введение
Николай Гребенщиков, www.grebenshikov.ru
![Page 2: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/2.jpg)
Объем курса
• 17 лекций
• 17 семинаров
• 17 лабораторных работ
• более 100 часов самостоятельной работы
1
![Page 3: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/3.jpg)
Модульно рейтинговая система
• 9 модулей
• 9 лабораторных работ (команда 2-3 чел.)
• 15 оцениваемых семинарских занятий
• Реферат
• Зачет автоматом - 701 балл и выше из 1000 баллов
2
![Page 4: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/4.jpg)
Лабораторные работы
• Автоматизированная система проверки.
• Языки программирования: Java, C#, C++.
• Решение засчитывается, если оно проходит автоматиче-ское тестирование и каждый из команды понимает, чтоэто решение делает.
• Сложные ⇒ посещение обязательно.
3
![Page 5: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/5.jpg)
Зачет
• ≤ 700 баллов (≤ 602 балла для магистров).
• Вопрос: один из вопросов для семинаров.
• Задача: одна из задач с лабораторных работ.
• Время: 2 часа.
4
![Page 6: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/6.jpg)
Список литературы
• Ахо А., Хопкрофт Д., Ульман Д. Структуры данных иалгоритмы. - М. : Издательский дом “Вильямс”, 2000.
• Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-мы: построение и анализ, 2-е издание. - М. : Издатель-ский дом “Вильямс”, 2007.
• Кнут Д, Искусство программирования, том 1. Основныеалгоритмы, 3-е изд. - М. : Издательский дома “Вильямс”,2000.
• http://algolist.manual.ru.
5
![Page 7: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/7.jpg)
СиАОД - теория и практика.
• Структурный подход к программированию ⇒ ООП
• Производительность ⇒ Алгоритмы ⇒ Анализ
• Примеры решений классических задач (структуры + ал-горитмы)
6
![Page 8: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/8.jpg)
Построение программы
1. Формализация.
2. Разработка алгоритма.
3. Кодирование, тестирование, отладка, документиро-вание.
4. Выполнение программы, получение результата.
7
![Page 9: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/9.jpg)
Формализация
Имеет ли задача решение?
8
![Page 10: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/10.jpg)
Способы формализации задачи
• математическое описание;
• конечные автоматы;
• формальные грамматики;
• и так далее.
9
![Page 11: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/11.jpg)
Разработка алгоритма
• алгоритм строится в терминах формальной модели;
• “четкий смысл” инструкций;
• конечность вычислительных затрат - ходные данные немогут инициировать бесконечное вычисление.
10
![Page 12: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/12.jpg)
Построение программы
1. Формализация.
2. Разработка алгоритма.
3. Кодирование, тестирование, отладка, документирование.
4. Выполнение программы, получение результата.
11
![Page 13: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/13.jpg)
Пример: Сложный перекресток
12
![Page 14: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/14.jpg)
Граф
13
![Page 15: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/15.jpg)
Матрица смежности
14
![Page 16: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/16.jpg)
Алгоритм: раскраска графа
• Оптимальный.
• Исключение полного перебора.
• Эвристический.
15
![Page 17: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/17.jpg)
Жадная раскраска графа
1. Выбираем произвольную незакрашенную вершину и на-значаем ей новый цвет.
2. Просматриваем список не закрашенных вершин и длякаждой определяем, соединина ли она ребром с верши-ной, уже закрашенной в новый цвет. Если нет, то к этойвершине также применяется новый цвет.
3. Повторяем с начала пока все вершины не будут закраше-ны.
16
![Page 18: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/18.jpg)
Результат
17
![Page 19: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/19.jpg)
Кристаллизация алгоритма: шаг №1
18
![Page 20: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/20.jpg)
Кристаллизация алгоритма: шаг №2
19
![Page 21: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/21.jpg)
Кристаллизация алгоритма: шаг №3
20
![Page 22: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/22.jpg)
Процесс создания программы
21
![Page 23: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"](https://reader031.vdocuments.mx/reader031/viewer/2022020116/559b875f1a28ab6d158b4569/html5/thumbnails/23.jpg)
Входное тестирование
1. Напишите любой алгоритм вычисления факториала чис-ла X.
2. Напишите любой алгоритм сортировки массива.
3. Что означает запись - Θ(N)?
22