SlideShare a Scribd company logo
1
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ КЫРГЫЗСКОЙ РЕСПУБЛИКИ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
КЫРГЫЗСКО-РОССИЙСКИЙ СЛАВЯНСКИЙ УНИВЕРСИТЕТ
УТВЕРЖДАЮ:
Декан факультета:
________________ Г.В. Лоцев
«___» ___________ 2015г.
СТРУКТУРЫ И АЛГОРИТМЫ ОБРАБОТКИ ДАННЫХ НА ЭВМ
Рабочая программа
Направление «Программная инженерия»
Уровень обучения – бакалавриат
Профиль «Разработка программно-информационных систем»
Факультет: Естественно-технический (ЕТФ)
Обеспечивающая кафедра:
кафедра информационных и вычислительных технологий (ИВТ)
Курс 2 Семестр 4
Учебный план набора 2013 года
Распределение учебного времени
Лекции 36 часов
Практические занятия нет
Лабораторные занятия 36 часов
Всего аудиторных занятий 72 часа
Самостоятельная (внеаудиторная) работа 72 часа,
включая курсовую работу в 1 семестре 50 часов
Общая трудоемкость 144 часа
Форма отчетности: зачет в 1 семестре
2015 год
2
1. Цели и задачи дисциплины, ее место в учебном процессе
1.1. Цель преподавания дисциплины «Структуры и алгоритмы обработки
данных на ЭВМ».
Цель дисциплины заключается в том,чтобы познакомить студентов с представлением
данных в программах и памяти ЭВМ а также научить их формализации объектов реального
мира наиболее подходящими типами данных.
1.2. Задачи изучения дисциплины.
В результате изучения дисциплины студенты должны:
- ознакомиться с наиболее часто используемыми абстрактными типами данных и
операциями, выполняемыми с этими типами;
- овладеть различными реализациями абстрактных типов данных ;
- знать особенности различных реализаций;
- освоить различные алгоритмы обработки информации.
1.3. Перечень дисциплин, знание которых необходимо для изучения
данного курса.
Дисциплина связана с предшествующими ей дисциплинами: «Информатика»,
«Дискретная математика», «Основы алгоритмизации и программирования», «Структурное
программирование», а также использует знания по математике, полученные к этому
времени.
1.4. Курсы, в которых будет использоваться данная дисциплина.
Материал дисциплины будет использоваться в последующих учебных курсах "Теория
принятия решений", "Методы оптимизации", "Операционные системы", "Конструирование
программного обеспечения" и других.
3
2. Содержание дисциплины
«Структуры и алгоритмы обработки данных на ЭВМ»
2.1. Лекционные занятия (36 часов)
№ Наименование тем и их содержание Часы
Модуль 1.
1 Сложность алгоритмов.
Понятие алгоритма. Понятие вычислительных ресурсов. Время выполнения
программ и использованная память. Понятие размера задачи и функций затрат
ресурсов от размера задачи. Асимптотические соотношения для оценки
сложности алгоритмов.
2
2 Анализ алгоритмов с позиции временной сложности.
Анализ времени выполнения программ. Оценка временных затрат программ с
условными операторами, циклами и подпрограммами. Анализ алгоритмов на
псевдокоде и на алгоритмических языках программирования.
2
3 Рекурсия.
Понятие рекурсии. Рекурсивные алгоритмы. Понятие стека вызовов функций.
Выбор между рекурсивной и итеративной реализацией. Вычисление факториала.
Вычисление чисел Фиббоначи. Понятие динамического программирования.
Оценка временной сложности рекурсивных алгоритмов.
2
4 Понятие абстрактного типа данных. Очередь и стек.
Понятие данных. Понятие типа данных. Абстрактный тип данных (АТД).
Очередь и стек. Операторы, выполняемые над ними. Реализация очереди и стека
на основе массивов и связанных списков.
2
5 Линейные списки.
Линейные списки. Операторы выполняемые над объектами типа линейный
список. Реализации списков с помощью массивов, с помощью указателей.
Сравнение методов реализации. Дважды связанные списки и их реализация.
2
Модуль 2.
6 Множества и простейшие АТД на основе модели множеств.
Множества. Однозначное соответствие. АТД «Множество» (операции
«включить», «исключить», «проверить», «перечислить»). Реализация множеств
посредством двоичных векторов, посредством линейных списков. Нечеткие
множества и множества с повторениями. Реализация посредством линейных
списков. АТД «система непересекающихся множеств» (операции «получить
множество», «объединить»).
2
7 АТД «очередь с приоритетами».
Линейный порядок на множестве. АТД «очередь с приоритетами». Реализация
посредством двоичной кучи.
2
8 АТД «ассоциативный массив».
Задачи хранения данных. АТД «ассоциативный массив» («словарь»,
«отображение») (операции «включить», «исключить», «проверить», «получить»,
«изменить», «перечислить»). Реализация линейным списком. Использование
отображений множеств и задание порядка на множестве для реализации АТД
«ассоциативный массив» при помощи хеш таблицы.
2
9 Графы и их представление в ЭВМ.
Понятие графа. Терминология. Виды графов. Способы представления графов в
ЭВМ (списки вершин и ребер, матрица смежности, списки соседей). Понятие
линейных и нелинейных динамических информационных структур.
2
4
10 Операторы, выполняемые над графами.
Понятие пути и цикла. Алгоритмы для самостоятельного изучения. Обход графа.
Поиск в ширину и его реализация с помощью очереди. Поиск в глубину и его
реализация с помощью стека. Рекурсивная и итеративная реализация поиска в
глубину.
2
Модуль 3.
11 Деревья.
Понятие дерева. Алгоритмы для нахождения минимального остовного дерева.
2
12 Деревья и их применение для моделирования. Представление деревьев в
ЭВМ.
Понятие подвешенных деревьев. Использование деревьев для моделирования
структур реального мира. Способы представления деревьев в ЭВМ (графы,
указатели на потомков, указатели на предка).
2
13
-
14
Двоичные деревья.
Двоичные деревья. Основные операции с двоичными деревьями. Обходы
двоичного дерева. Двоичные деревья поиска. Поиск с включением. Удаление
элемента из дерева двоичного поиска. Идеально сбалансированные двоичные
деревья. Временная сложность операций на множествах, представленных
двоичными деревьями.
4
Модуль 4.
15 Обзор деревьев поиска.
АВЛ деревья. Отличие от идеально сбалансированного дерева. Деревья
Фибоначчи. Балансировка АВЛ дерева. Включение в сбалансированное дерево.
Оптимальные деревья бинарного поиска. B-деревья. 2-3 дерево. Структуры
данных для внешней памяти.
2
16 Сортировки списков.
Определения. Простые методы сортировок: выбором, включением, обменом.
Временые затраты при этих сортировках. Улучшенные методы сортировок:
сортировка включениями с уменьшающимися расстояниями, сортировка с
помощью дерева, пирамидальная сортировка, сортировка с помощью
разделения. Сравнение методов сортировки массивов.
2
17 Внешние сортировки.
Сортировка последовательностей. Прямое слияние. Естественное слияние.
Многофазная сортировка.
2
18 Обзор вычисляющих структур данных с единичной и интервальной
модификацией
Сумматор. Минимизатор. Двумерный сумматор. Дерево максимумов. Дерево
отрезков.
2
2.2. Практические и семинарские занятия – не предусмотрены
5
2.3. Лабораторные занятия (36 часов)
Цель лабораторных работ – практическое освоение алгоритмов обработки данных и
структур для представления данных а также анализ алгоритмов с позиций временных затрат.
Лаброраторные работы выполняются студентом в форме самостоятельной работы, как
аудиторной, так и внеаудиторной. По результатам выполения каждой каждой лаботарорной
работы студент составляет отчет, а затем контроль качества усвоения материала темы
лабораторной работы осуществляется в форме защиты лабораторной работы, проводимой в
виде индивиуального собеседования с проподавателем. Защита подразумевает
демонстрацию работы компьютерной программы, разработанной в ходе выполнения
лабораторной работы и объяснения принципов работы этой программы.
Список лабораторных работ:
Часы№ Наименование лабораторных работ и тем занятий Макс.
балл ауд. внеауд.
1. Линейный и бинарный поиск в массиве. 9 3 2
2. Поиск корня уравнения методом дихотомии. 9 3 2
3. Реализация очереди с приоритетами. 11 3 2
4. Моделирование задачи о Ханойской башне. 11 3 2
5. Представление графа в памяти ЭВМ, реализация алгоритмов
поиска в ширину и поиска в глубину.
13 3 3
6. Построение идеально сбалансированного дерева бинарного
поиска, осуществление поиска по дереву и обхода дерева.
13 4 2
2.4. Текущий и итоговый контроль результатов изучения дисциплины
2.4.1. Текущий контроль
Текущий контроль осуществляется в течение семестра в двух формах:
- Защита лабораторных работ (в сумме – максимум 66 баллов)
- Лабораторные работы №№ 1 и 2 – срок сдачи до начала апреля
- Лабораторные работы №№ 3 и 4 – срок сдачи до начала мая
- Лабораторные работы №№ 5 и 6 – срок сдачи до конца семестра
- Выполнение контрольных работ
- Контрольная работа №1 – последнее занятие февраля и последнее занятие апреля –
максимум 10 баллов
- Контрольная работа №2 – последнее занятие марта и последнее занятие мая –
максимум 14 баллов
2.4.2. Итоговый контроль
Итоговый контроль осуществляется в форме зачета. Согласно «положению о балльно-
рейтинговой системе», зачет получают студенты, набравшие в течение семестра не менее 60
баллов.
6
2.5. Курсовая работа
Цель курсовой работы – применение полученных знаний по предмету для составления
программ, реализующих определенные алгоритмы и структуры. Курсовая работа
выполняется студентом в форме внеаудиторной самостоятельной работы.
Список тем курсовых работ:
№ Тема Макс.
балл
1. Двусвязные линейные списки 70
2. Структуры данных «сумматор» и «минимизатор» 70
3. Поиск решения рекурсивными процедурами на примере задачи о коне на
шахматном поле
80
4. Применение связанных линейных списков для разбиения текста на строки 80
5. Обмен данными между несколькими стеками, реализованными на основе
односвязных списков
80
6. Реализация алгоритма поиска кратчайшего пути в графе 80
7. Реализация структуры данных «2-3 дерево» 80
8. Реализация структуры данных «АВЛ дерево» 80
9. Разработка программной системы для вывода дерева каталогов и файлов и
поиска по этому дереву.
80
10. Подсчет суммарной яркости участка изменяемого изображения с
использованием структуры данных «двумерный сумматор»
90
11. Реализация алгоритма Кнута-Морриса-Пратта 90
12. Реализация частотного словаря при помощи хеш-функций и деревьев
бинарного поиска
90
13. Реализация частотного словаря при помощи регулярно перестраивающихся
оптимальных деревьев бинарного поиска
90
14. Разработка программы для автодополнения текста при вводе при помощи
дерева префиксов
90
15. Разработка программы для проверки орфографии при помощи дерева
префиксов и суффиксов
90
16. Разработка программной системы для анализа и вычисления алгебраических
выражений при помощи бинарных деревьев
100
17. Реализация частотного словаря при помощи деревьев бинарного поиска с
последующей классификацией типа анализируемого текста
100
18. Разработка редактора формул 100
19. Разработка программной системы для быстрого поиска среди удаленно
хранящихся данных, индексируемых с помощью Б-деревьев
100
20. Разработка программ по предложению студентов
7
3. Учебно-методические материалы по дисциплине
3.1. Основная литература
1. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы. Построение и анализ. Второе
издание. М.:Вильямс, 2007г. ISBN 5-8459-0857-4
2. Вирт Н. Алгоритмы+структуры данных=программы.-М.:Мир,1985г.
3. Ахо А.,Хопкрофт Д.,УльманД.Структуры данных и алгоритмы.Издательский дом
“Вильямс“,2001г.
4. Вирт Н. Алгоритмы и структуры данных.-М.:Мир,1989г.
5. Трамбле Ж.,Соренсон П. Введение в структуры данных.М.:Машиностроение,1982г.
6. Демиденко А.П. Учебное пособие по дисциплине «Структуры и Алгоритмы обработки
данных». Ч1 – Сложность алгоритмов, Ч2 – Линейные структуры даных, Ч3 – Нелинейные
структуры данных. Электронная версия в локальной сети кафедры ИВТ.
7. Демиденко А.П. Методические рекомендации по выполнению курсовой работы по
структурам и алгоритмам. Электронная версия в локальной сети кафедры ИВТ.
3.2. Дополнительная литература
1. Мейер Б.,Бодуэн к. Методы программирования.В 2-х томах.М.:Мир,1982г.

More Related Content

Similar to 2014-2015_Алгор-структ_Раб-прогр_Мансуров

Лекция №1 Организация ЭВМ и систем
Лекция №1 Организация ЭВМ и системЛекция №1 Организация ЭВМ и систем
Лекция №1 Организация ЭВМ и систем
pianist2317
 
брошюра эсо
брошюра эсоброшюра эсо
брошюра эсоbukish
 
Рабочая учебная программа
Рабочая учебная программаРабочая учебная программа
Рабочая учебная программа
Rauan Ibraikhan
 
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScriptМетапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScript
Timur Shemsedinov
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике вAnastasia Snegina
 
Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...
Ilya Nikitin
 
моя презентация
моя презентациямоя презентация
моя презентация
19115678
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике вAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 
Руководство пользователя CLASS.NET
Руководство пользователя CLASS.NETРуководство пользователя CLASS.NET
Руководство пользователя CLASS.NET
Alexandr Dzhumurat
 
пр 15.docx
пр 15.docxпр 15.docx
пр 15.docx
ssuser6d63bc1
 
Магистерская программа «Распределённые системы и компьютерные сети»
Магистерская программа «Распределённые системы и компьютерные сети»Магистерская программа «Распределённые системы и компьютерные сети»
Магистерская программа «Распределённые системы и компьютерные сети»
ARCCN
 
прак 15.docx
прак 15.docxпрак 15.docx
прак 15.docx
ssuser6d63bc1
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике втAnastasia Snegina
 
презентация эсо
презентация эсопрезентация эсо
презентация эсоbukish
 
использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...
Иван Иванов
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
yaevents
 
задания для самостоятеьного изучения предмета математика
задания для самостоятеьного изучения предмета математиказадания для самостоятеьного изучения предмета математика
задания для самостоятеьного изучения предмета математика
Roman Prilipa
 
лабораторная работа № 1
лабораторная работа № 1лабораторная работа № 1
лабораторная работа № 1Gulnaz Shakirova
 

Similar to 2014-2015_Алгор-структ_Раб-прогр_Мансуров (20)

Лекция №1 Организация ЭВМ и систем
Лекция №1 Организация ЭВМ и системЛекция №1 Организация ЭВМ и систем
Лекция №1 Организация ЭВМ и систем
 
брошюра эсо
брошюра эсоброшюра эсо
брошюра эсо
 
Рабочая учебная программа
Рабочая учебная программаРабочая учебная программа
Рабочая учебная программа
 
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScriptМетапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScript
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике в
 
Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...
 
моя презентация
моя презентациямоя презентация
моя презентация
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике в
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
Руководство пользователя CLASS.NET
Руководство пользователя CLASS.NETРуководство пользователя CLASS.NET
Руководство пользователя CLASS.NET
 
пр 15.docx
пр 15.docxпр 15.docx
пр 15.docx
 
Магистерская программа «Распределённые системы и компьютерные сети»
Магистерская программа «Распределённые системы и компьютерные сети»Магистерская программа «Распределённые системы и компьютерные сети»
Магистерская программа «Распределённые системы и компьютерные сети»
 
прак 15.docx
прак 15.docxпрак 15.docx
прак 15.docx
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
презентация эсо
презентация эсопрезентация эсо
презентация эсо
 
использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...использование пакета Mathcad для математических и инженерных расчетов с практ...
использование пакета Mathcad для математических и инженерных расчетов с практ...
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
задания для самостоятеьного изучения предмета математика
задания для самостоятеьного изучения предмета математиказадания для самостоятеьного изучения предмета математика
задания для самостоятеьного изучения предмета математика
 
лабораторная работа № 1
лабораторная работа № 1лабораторная работа № 1
лабораторная работа № 1
 

2014-2015_Алгор-структ_Раб-прогр_Мансуров

  • 1. 1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ КЫРГЫЗСКОЙ РЕСПУБЛИКИ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ КЫРГЫЗСКО-РОССИЙСКИЙ СЛАВЯНСКИЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ: Декан факультета: ________________ Г.В. Лоцев «___» ___________ 2015г. СТРУКТУРЫ И АЛГОРИТМЫ ОБРАБОТКИ ДАННЫХ НА ЭВМ Рабочая программа Направление «Программная инженерия» Уровень обучения – бакалавриат Профиль «Разработка программно-информационных систем» Факультет: Естественно-технический (ЕТФ) Обеспечивающая кафедра: кафедра информационных и вычислительных технологий (ИВТ) Курс 2 Семестр 4 Учебный план набора 2013 года Распределение учебного времени Лекции 36 часов Практические занятия нет Лабораторные занятия 36 часов Всего аудиторных занятий 72 часа Самостоятельная (внеаудиторная) работа 72 часа, включая курсовую работу в 1 семестре 50 часов Общая трудоемкость 144 часа Форма отчетности: зачет в 1 семестре 2015 год
  • 2. 2 1. Цели и задачи дисциплины, ее место в учебном процессе 1.1. Цель преподавания дисциплины «Структуры и алгоритмы обработки данных на ЭВМ». Цель дисциплины заключается в том,чтобы познакомить студентов с представлением данных в программах и памяти ЭВМ а также научить их формализации объектов реального мира наиболее подходящими типами данных. 1.2. Задачи изучения дисциплины. В результате изучения дисциплины студенты должны: - ознакомиться с наиболее часто используемыми абстрактными типами данных и операциями, выполняемыми с этими типами; - овладеть различными реализациями абстрактных типов данных ; - знать особенности различных реализаций; - освоить различные алгоритмы обработки информации. 1.3. Перечень дисциплин, знание которых необходимо для изучения данного курса. Дисциплина связана с предшествующими ей дисциплинами: «Информатика», «Дискретная математика», «Основы алгоритмизации и программирования», «Структурное программирование», а также использует знания по математике, полученные к этому времени. 1.4. Курсы, в которых будет использоваться данная дисциплина. Материал дисциплины будет использоваться в последующих учебных курсах "Теория принятия решений", "Методы оптимизации", "Операционные системы", "Конструирование программного обеспечения" и других.
  • 3. 3 2. Содержание дисциплины «Структуры и алгоритмы обработки данных на ЭВМ» 2.1. Лекционные занятия (36 часов) № Наименование тем и их содержание Часы Модуль 1. 1 Сложность алгоритмов. Понятие алгоритма. Понятие вычислительных ресурсов. Время выполнения программ и использованная память. Понятие размера задачи и функций затрат ресурсов от размера задачи. Асимптотические соотношения для оценки сложности алгоритмов. 2 2 Анализ алгоритмов с позиции временной сложности. Анализ времени выполнения программ. Оценка временных затрат программ с условными операторами, циклами и подпрограммами. Анализ алгоритмов на псевдокоде и на алгоритмических языках программирования. 2 3 Рекурсия. Понятие рекурсии. Рекурсивные алгоритмы. Понятие стека вызовов функций. Выбор между рекурсивной и итеративной реализацией. Вычисление факториала. Вычисление чисел Фиббоначи. Понятие динамического программирования. Оценка временной сложности рекурсивных алгоритмов. 2 4 Понятие абстрактного типа данных. Очередь и стек. Понятие данных. Понятие типа данных. Абстрактный тип данных (АТД). Очередь и стек. Операторы, выполняемые над ними. Реализация очереди и стека на основе массивов и связанных списков. 2 5 Линейные списки. Линейные списки. Операторы выполняемые над объектами типа линейный список. Реализации списков с помощью массивов, с помощью указателей. Сравнение методов реализации. Дважды связанные списки и их реализация. 2 Модуль 2. 6 Множества и простейшие АТД на основе модели множеств. Множества. Однозначное соответствие. АТД «Множество» (операции «включить», «исключить», «проверить», «перечислить»). Реализация множеств посредством двоичных векторов, посредством линейных списков. Нечеткие множества и множества с повторениями. Реализация посредством линейных списков. АТД «система непересекающихся множеств» (операции «получить множество», «объединить»). 2 7 АТД «очередь с приоритетами». Линейный порядок на множестве. АТД «очередь с приоритетами». Реализация посредством двоичной кучи. 2 8 АТД «ассоциативный массив». Задачи хранения данных. АТД «ассоциативный массив» («словарь», «отображение») (операции «включить», «исключить», «проверить», «получить», «изменить», «перечислить»). Реализация линейным списком. Использование отображений множеств и задание порядка на множестве для реализации АТД «ассоциативный массив» при помощи хеш таблицы. 2 9 Графы и их представление в ЭВМ. Понятие графа. Терминология. Виды графов. Способы представления графов в ЭВМ (списки вершин и ребер, матрица смежности, списки соседей). Понятие линейных и нелинейных динамических информационных структур. 2
  • 4. 4 10 Операторы, выполняемые над графами. Понятие пути и цикла. Алгоритмы для самостоятельного изучения. Обход графа. Поиск в ширину и его реализация с помощью очереди. Поиск в глубину и его реализация с помощью стека. Рекурсивная и итеративная реализация поиска в глубину. 2 Модуль 3. 11 Деревья. Понятие дерева. Алгоритмы для нахождения минимального остовного дерева. 2 12 Деревья и их применение для моделирования. Представление деревьев в ЭВМ. Понятие подвешенных деревьев. Использование деревьев для моделирования структур реального мира. Способы представления деревьев в ЭВМ (графы, указатели на потомков, указатели на предка). 2 13 - 14 Двоичные деревья. Двоичные деревья. Основные операции с двоичными деревьями. Обходы двоичного дерева. Двоичные деревья поиска. Поиск с включением. Удаление элемента из дерева двоичного поиска. Идеально сбалансированные двоичные деревья. Временная сложность операций на множествах, представленных двоичными деревьями. 4 Модуль 4. 15 Обзор деревьев поиска. АВЛ деревья. Отличие от идеально сбалансированного дерева. Деревья Фибоначчи. Балансировка АВЛ дерева. Включение в сбалансированное дерево. Оптимальные деревья бинарного поиска. B-деревья. 2-3 дерево. Структуры данных для внешней памяти. 2 16 Сортировки списков. Определения. Простые методы сортировок: выбором, включением, обменом. Временые затраты при этих сортировках. Улучшенные методы сортировок: сортировка включениями с уменьшающимися расстояниями, сортировка с помощью дерева, пирамидальная сортировка, сортировка с помощью разделения. Сравнение методов сортировки массивов. 2 17 Внешние сортировки. Сортировка последовательностей. Прямое слияние. Естественное слияние. Многофазная сортировка. 2 18 Обзор вычисляющих структур данных с единичной и интервальной модификацией Сумматор. Минимизатор. Двумерный сумматор. Дерево максимумов. Дерево отрезков. 2 2.2. Практические и семинарские занятия – не предусмотрены
  • 5. 5 2.3. Лабораторные занятия (36 часов) Цель лабораторных работ – практическое освоение алгоритмов обработки данных и структур для представления данных а также анализ алгоритмов с позиций временных затрат. Лаброраторные работы выполняются студентом в форме самостоятельной работы, как аудиторной, так и внеаудиторной. По результатам выполения каждой каждой лаботарорной работы студент составляет отчет, а затем контроль качества усвоения материала темы лабораторной работы осуществляется в форме защиты лабораторной работы, проводимой в виде индивиуального собеседования с проподавателем. Защита подразумевает демонстрацию работы компьютерной программы, разработанной в ходе выполнения лабораторной работы и объяснения принципов работы этой программы. Список лабораторных работ: Часы№ Наименование лабораторных работ и тем занятий Макс. балл ауд. внеауд. 1. Линейный и бинарный поиск в массиве. 9 3 2 2. Поиск корня уравнения методом дихотомии. 9 3 2 3. Реализация очереди с приоритетами. 11 3 2 4. Моделирование задачи о Ханойской башне. 11 3 2 5. Представление графа в памяти ЭВМ, реализация алгоритмов поиска в ширину и поиска в глубину. 13 3 3 6. Построение идеально сбалансированного дерева бинарного поиска, осуществление поиска по дереву и обхода дерева. 13 4 2 2.4. Текущий и итоговый контроль результатов изучения дисциплины 2.4.1. Текущий контроль Текущий контроль осуществляется в течение семестра в двух формах: - Защита лабораторных работ (в сумме – максимум 66 баллов) - Лабораторные работы №№ 1 и 2 – срок сдачи до начала апреля - Лабораторные работы №№ 3 и 4 – срок сдачи до начала мая - Лабораторные работы №№ 5 и 6 – срок сдачи до конца семестра - Выполнение контрольных работ - Контрольная работа №1 – последнее занятие февраля и последнее занятие апреля – максимум 10 баллов - Контрольная работа №2 – последнее занятие марта и последнее занятие мая – максимум 14 баллов 2.4.2. Итоговый контроль Итоговый контроль осуществляется в форме зачета. Согласно «положению о балльно- рейтинговой системе», зачет получают студенты, набравшие в течение семестра не менее 60 баллов.
  • 6. 6 2.5. Курсовая работа Цель курсовой работы – применение полученных знаний по предмету для составления программ, реализующих определенные алгоритмы и структуры. Курсовая работа выполняется студентом в форме внеаудиторной самостоятельной работы. Список тем курсовых работ: № Тема Макс. балл 1. Двусвязные линейные списки 70 2. Структуры данных «сумматор» и «минимизатор» 70 3. Поиск решения рекурсивными процедурами на примере задачи о коне на шахматном поле 80 4. Применение связанных линейных списков для разбиения текста на строки 80 5. Обмен данными между несколькими стеками, реализованными на основе односвязных списков 80 6. Реализация алгоритма поиска кратчайшего пути в графе 80 7. Реализация структуры данных «2-3 дерево» 80 8. Реализация структуры данных «АВЛ дерево» 80 9. Разработка программной системы для вывода дерева каталогов и файлов и поиска по этому дереву. 80 10. Подсчет суммарной яркости участка изменяемого изображения с использованием структуры данных «двумерный сумматор» 90 11. Реализация алгоритма Кнута-Морриса-Пратта 90 12. Реализация частотного словаря при помощи хеш-функций и деревьев бинарного поиска 90 13. Реализация частотного словаря при помощи регулярно перестраивающихся оптимальных деревьев бинарного поиска 90 14. Разработка программы для автодополнения текста при вводе при помощи дерева префиксов 90 15. Разработка программы для проверки орфографии при помощи дерева префиксов и суффиксов 90 16. Разработка программной системы для анализа и вычисления алгебраических выражений при помощи бинарных деревьев 100 17. Реализация частотного словаря при помощи деревьев бинарного поиска с последующей классификацией типа анализируемого текста 100 18. Разработка редактора формул 100 19. Разработка программной системы для быстрого поиска среди удаленно хранящихся данных, индексируемых с помощью Б-деревьев 100 20. Разработка программ по предложению студентов
  • 7. 7 3. Учебно-методические материалы по дисциплине 3.1. Основная литература 1. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы. Построение и анализ. Второе издание. М.:Вильямс, 2007г. ISBN 5-8459-0857-4 2. Вирт Н. Алгоритмы+структуры данных=программы.-М.:Мир,1985г. 3. Ахо А.,Хопкрофт Д.,УльманД.Структуры данных и алгоритмы.Издательский дом “Вильямс“,2001г. 4. Вирт Н. Алгоритмы и структуры данных.-М.:Мир,1989г. 5. Трамбле Ж.,Соренсон П. Введение в структуры данных.М.:Машиностроение,1982г. 6. Демиденко А.П. Учебное пособие по дисциплине «Структуры и Алгоритмы обработки данных». Ч1 – Сложность алгоритмов, Ч2 – Линейные структуры даных, Ч3 – Нелинейные структуры данных. Электронная версия в локальной сети кафедры ИВТ. 7. Демиденко А.П. Методические рекомендации по выполнению курсовой работы по структурам и алгоритмам. Электронная версия в локальной сети кафедры ИВТ. 3.2. Дополнительная литература 1. Мейер Б.,Бодуэн к. Методы программирования.В 2-х томах.М.:Мир,1982г.