Transcript
Page 1: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Хакасский государственный университет им. Н.Ф. Катанова

Структуры и алгоритмы обработки данных

Лекция: Введение

Николай Гребенщиков, www.grebenshikov.ru

Page 2: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Объем курса

• 17 лекций

• 17 семинаров

• 17 лабораторных работ

• более 100 часов самостоятельной работы

1

Page 3: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Модульно рейтинговая система

• 9 модулей

• 9 лабораторных работ (команда 2-3 чел.)

• 15 оцениваемых семинарских занятий

• Реферат

• Зачет автоматом - 701 балл и выше из 1000 баллов

2

Page 4: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Лабораторные работы

• Автоматизированная система проверки.

• Языки программирования: Java, C#, C++.

• Решение засчитывается, если оно проходит автоматиче-ское тестирование и каждый из команды понимает, чтоэто решение делает.

• Сложные ⇒ посещение обязательно.

3

Page 5: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Зачет

• ≤ 700 баллов (≤ 602 балла для магистров).

• Вопрос: один из вопросов для семинаров.

• Задача: одна из задач с лабораторных работ.

• Время: 2 часа.

4

Page 6: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Список литературы

• Ахо А., Хопкрофт Д., Ульман Д. Структуры данных иалгоритмы. - М. : Издательский дом “Вильямс”, 2000.

• Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-мы: построение и анализ, 2-е издание. - М. : Издатель-ский дом “Вильямс”, 2007.

• Кнут Д, Искусство программирования, том 1. Основныеалгоритмы, 3-е изд. - М. : Издательский дома “Вильямс”,2000.

• http://algolist.manual.ru.

5

Page 7: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

СиАОД - теория и практика.

• Структурный подход к программированию ⇒ ООП

• Производительность ⇒ Алгоритмы ⇒ Анализ

• Примеры решений классических задач (структуры + ал-горитмы)

6

Page 8: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Построение программы

1. Формализация.

2. Разработка алгоритма.

3. Кодирование, тестирование, отладка, документиро-вание.

4. Выполнение программы, получение результата.

7

Page 9: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Формализация

Имеет ли задача решение?

8

Page 10: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Способы формализации задачи

• математическое описание;

• конечные автоматы;

• формальные грамматики;

• и так далее.

9

Page 11: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Разработка алгоритма

• алгоритм строится в терминах формальной модели;

• “четкий смысл” инструкций;

• конечность вычислительных затрат - ходные данные немогут инициировать бесконечное вычисление.

10

Page 12: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Построение программы

1. Формализация.

2. Разработка алгоритма.

3. Кодирование, тестирование, отладка, документирование.

4. Выполнение программы, получение результата.

11

Page 13: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Пример: Сложный перекресток

12

Page 14: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Граф

13

Page 15: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Матрица смежности

14

Page 16: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Алгоритм: раскраска графа

• Оптимальный.

• Исключение полного перебора.

• Эвристический.

15

Page 17: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Жадная раскраска графа

1. Выбираем произвольную незакрашенную вершину и на-значаем ей новый цвет.

2. Просматриваем список не закрашенных вершин и длякаждой определяем, соединина ли она ребром с верши-ной, уже закрашенной в новый цвет. Если нет, то к этойвершине также применяется новый цвет.

3. Повторяем с начала пока все вершины не будут закраше-ны.

16

Page 18: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Результат

17

Page 19: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Кристаллизация алгоритма: шаг №1

18

Page 20: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Кристаллизация алгоритма: шаг №2

19

Page 21: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Кристаллизация алгоритма: шаг №3

20

Page 22: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Процесс создания программы

21

Page 23: Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"

Входное тестирование

1. Напишите любой алгоритм вычисления факториала чис-ла X.

2. Напишите любой алгоритм сортировки массива.

3. Что означает запись - Θ(N)?

22


Recommended