Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5145

.pdf
Скачиваний:
1
Добавлен:
21.11.2023
Размер:
561.77 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Прокопенко Н.Ю.

АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ

Учебно-методическое пособие по подготовке к лекциям, лабораторным занятиям

(включая рекомендации по организации самостоятельной работы),

по выполнению расчетной работы

для обучающихся по дисциплине «Алгоритмы и структуры данных» по направлению подготовки 09.03.03 Прикладная информатика направленность (профиль) Прикладная информатика в экономике

Нижний Новгород

2022

УДК 004.9

Прокопенко Н.Ю. / Алгоритмы и структуры данных: учебно-методическое пособие / Н.Ю. Прокопенко; Нижегородский государственный архитектурно-строительный университет – Нижний Новгород: ННГАСУ, 2022. – 14 с.– Текст: электронный.

В настоящем учебно-методическом пособии по дисциплине «Алгоритмы и структуры данных» даются конкретные рекомендации учащимся для освоения как основного, так и дополнительного материала дисциплины и тем самым способствующие достижению целей, обозначенных в учебной программе дисциплины. Цель учебно-методического пособия это помощь в усвоении лекций, в подготовке к лабораторным занятиям, а также в написании расчетной работы.

Учебно-методическое пособие предназначено для обучающихся в ННГАСУ по дисциплине «Алгоритмы и структуры данных» по направлению подготовки 09.03.03 Прикладная информатика, направленность (профиль) Прикладная информатика в экономике.

© Н.Ю. Прокопенко, 2022

© ННГАСУ, 2022

2

 

Оглавление

 

1.

Общие положения ..........................................................................................................................

4

 

. 1.1 Цели изучения дисциплины и результаты обучения .........................................................

4

 

. 1.2 Содержание дисциплины .....................................................................................................

4

 

. 1.3 Вспомогательная литература для изучения дисциплины .................................................

5

2.

Методические указания по подготовке к лекциям .....................................................................

6

 

. 2.1 Общие рекомендации по работе на лекциях ......................................................................

6

 

. 2.2 Общие рекомендации при работе с конспектом лекций ...................................................

6

 

. 2.3 Контрольные вопросы ..........................................................................................................

7

3.

Методические указания по подготовке к лабораторным занятиям ..........................................

7

 

. 3.1 Общие рекомендации по подготовке к лабораторным занятиям .....................................

7

 

. 3.2 Примеры задач для практических занятий .........................................................................

8

.4. Методические указания по организации самостоятельной работы.........................................

9

 

. 4.1

Общие рекомендации для самостоятельной работы .........................................................

9

 

. 4.2

Темы для самостоятельного изучения ..............................................................................

11

5.

Методические указания по выполнению расчетной работы (Общие рекомендации) ..........

11

 

. 5.1

Общие требования к оформлению расчетной работы .....................................................

12

 

. 5.2

Примерные варианты расчетной работы ..........................................................................

13

1. Общие положения

. 1.1 Цели изучения дисциплины и результаты обучения

Основной целью освоения учебной дисциплины «Алгоритмы и структуры данных» являет-

ся достижение результатов обучения, предусмотренных установленным в ОПОП индикаторами достижения компетенций.

Целями освоения данной дисциплины являются изучение характеристик сложности алго-

ритма, знакомство со структурами данных, их представлениями и алгоритмами обработки, без знания которых невозможно современное компьютерное программирование. Рассматриваются различные алгоритмы для работы с массивами, очередями, стеками, списками.

В процессе освоения дисциплины студент должен Знать: основные понятия, методы, алгоритмы, способы решения задач учебной дисциплины

«Алгоритмы и структуры данных»; описание структур хранения данных: вектор, список, сеть, мас-

сив, строки и записи, множества; описание линейных структур: стек, очередь, дек; описание нели-

нейных структур: дерево, лес, граф; алгоритмы внутренней и внешней сортировки;

Уметь: перевести содержательную задачу на математический язык, найти подходящий метод решения задачи, содержательно проанализировать результаты решения и применить их на практи-

ке; компьютерной техникой и информационными технологиями; навыками создания, отладки и тестирования программ.

Владеть: техникой решения задач сортировок и поиска; навыками абстрактных рассуждений,

технологиями использования современных программных средств, работы пользователя и програм-

миста в интегрированных средах, использующих «оконный интерфейс».

Данная дисциплина позволит студентам не только систематизировать полученные теорети-

ческие знания, укрепить исследовательские навыки, но и даст возможность ориентироваться в но-

вом предметном поле информатики.

. 1.2 Содержание дисциплины

Материал дисциплины сгруппирован по следующим разделам:

1. Алгоритмы и данные.

Понятие алгоритма и его свойства. Способы записи алгоритма. Постановка задачи. Постро-

ение модели задачи. Разработка алгоритма. Реализация алгоритма в виде программы. Проверка правильности алгоритма. Простейшая модель вычислений: машина Тьюринга. Определение вре-

менной и емкостной сложности алгоритма. Значение эффективных алгоритмов в вычислительных

задачах. Асимптотики. Оценка сложности алгоритмов для задач сортировок. Детерминированные и недетерминированные алгоритмы. P и NP сложные задачи.

2. Линейные структуры данных.

Алгоритмы поиска и сортировки на линейных структурах данных. Алгоритмы поиска и сортировки на массивах.

Стеки: структуры стека, операции над стеками, применение стеков при разработке прило-

жений. Очереди: структуры очереди, операции над очередью, применение очереди при разработке приложений. Деки.

3. Типы данных. Структуры хранения данных.

Характеристика данных тремя качествами: семантикой, синтаксисом и прагматикой. Дан-

ные скалярных типов. Данные структурных типов. Определение структуры данных. Определение структуры хранения данных. Представление адреса в языках программирования с помощью указа-

телей. Типизированные и не типизированные указатели. Статическая и динамическая память. Век-

тор. Список.

. 1.3 Вспомогательная литература для изучения дисциплины

Для освоения дисциплины обучающийся может использовать печатные и электронные из-

дания и методические материалы, имеющиеся в библиотеке ННГАСУ и/или размещённые в элек-

тронных библиотечных системах (ЭБС), предоставляющих право использования изданий на осно-

вании договорных отношений с университетом, а также иные общедоступные ресурсы сети «Ин-

тернет».

Печатные и электронные издания

1. Белов Владимир Викторович. Алгоритмы и структуры данных : учебник для студентов высших учебных заведений, обучающихся по направлению подготовки 2.09.03.04 "Программная инжене-

рия" (квалификация - Бакалавр). / Белов Владимир Викторович, Чистякова Валентина Ивановна ;

Москва : КУРС : ИНФРА-М, 2020. – 238 с. – ISBN ISBN 978-5-16-011704-1 (ИНФРА-М).

2. Вирт Никлаус. Алгоритмы и структуры данных / Вирт Никлаус, Ткачева Ф. В. ; Никлаус Вирт;

пер. Ф. В. Ткачева. – Саратов : Профобразование, 2019. – 272 с. – URL: URL: http://www.iprbookshop.ru/88753.html. – ISBN ISBN 978-5-4488-0101-3.

3. Мейер, Б.. Инструменты, алгоритмы и структуры данных : учебное пособие. / Мейер, Б. ; Б.

Мейер. – Москва : Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2021. – 540 с. – URL: URL: http://www.iprbookshop.ru/102012.html. – ISBN ISBN 978-5-

4497-0875-5.

5

Методические материалы по дисциплине

1. Любимцев Олег Владимирович. Алгоритмы и структуры данных : учеб.-метод. пособие по под-

гот. к лекц. и практ. занятиям (включая рекомендации по орг. самостоят. работы) для обучающих-

ся по дисциплине "Алгоритмы и структуры данных" по направлению подгот. 09.03.04 Программ-

ная инженерия профиль Разработка программно-информ. систем. / Любимцев Олег Владимирович

; Нижегор. гос. архит.-строит. ун-т. – Нижний Новгород : ННГАСУ, 2018. – 1 CD ROM. – URL: URL: http://catalog.nngasu.ru/MarcWeb2/.

2. Методические указания по подготовке к лекциям

. 2.1 Общие рекомендации по работе на лекциях

Лекция является главным звеном дидактического цикла обучения. Ее цель – формирование основы для последующего усвоения учебного материала. В ходе лекции преподаватель в устной форме, а также с помощью презентаций передает обучаемым знания по основным, фундаменталь-

ным вопросам изучаемой дисциплины.

Назначение лекции состоит в том, чтобы доходчиво изложить основные положения изуча-

емой дисциплины, ориентировать на наиболее важные вопросы учебной дисциплины и оказать помощь в овладении необходимых знаний и применения их на практике.

При подготовке к лекционным занятиям студенты должны ознакомиться с презентаций,

предлагаемой преподавателем, отметить непонятные термины и положения, подготовить вопросы с целью уточнения правильности понимания. Рекомендуется приходить на лекцию подготовлен-

ным, так как в этом случае лекция может быть проведена в интерактивном режиме, что способ-

ствует повышению эффективности лекционных занятий.

. 2.2 Общие рекомендации при работе с конспектом лекций

В ходе лекционных занятий необходимо вести конспектирование учебного материала. Кон-

спект помогает внимательно слушать, лучше запоминать в процессе осмысленного записывания,

обеспечивает наличие опорных материалов при подготовке к лабораторным занятиям, зачету, эк-

замену.

Полезно оставить в рабочих конспектах поля, на которых делать пометки из рекомендован-

ной литературы, дополняющие материал прослушанной лекции, а также подчеркивающие особую важность тех или иных теоретических положений.

В случае неясности по тем или иным вопросам необходимо задавать преподавателю уточ-

6

няющие вопросы. Следует ясно понимать, что отсутствие вопросов без обсуждения означает в

большинстве случаев неусвоенность материала дисциплины.

. 2.3 Контрольные вопросы

1.Определение алгоритма. Свойства алгоритмов.

2.Способы задания алгоритмов.

3.Показатели эффективности алгоритмов (время, память, устойчивость).

4.Асимптотический анализ вычислительной сложности алгоритмов. Анализ вычислительной сложности в худшем, среднем и наилучшем случаях. Асимптотические обозначения O, Θ, Ω.

5.Алгоритмы простого поиска в массиве.

6.Бинарный поиск.

7.Простые сортировки массивов.

8.Сортировка простым включением.

9.Сортировка методом Шелла.

10.Сортировка простым извлечением.

11.Сортировка методом пузырька.

12.Оптимизация сортировки методом пузырька (оптимизация по длине, по количеству, по направ-

лению).

13.Быстрые сортировки массивов.

14.Быстрая сортировка (Хоара).

15.Рекурсия. Примеры.

16.Оценка сложности алгоритмов для задач сортировок.

17.Простейшая модель вычислений: машина Тьюринга.

18.Односвязные списки.

19.Стек. Примеры использования стека при решении задач.

20.Стек: функции Push и Pop.

21.Двусвязные списки.

22.Очередь. Функции Push и Pop.

23.Дек: функции Push и Pop.

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

. 3.1 Общие рекомендации по подготовке к лабораторным занятиям

В ходе подготовки к лабораторным занятиям необходимо изучать основную литературу, по-

знакомиться с дополнительной литературой. При этом необходимо учесть рекомендации препода-

7

вателя и требования учебной программы.

В соответствии с этими рекомендациями и подготовкой полезно дорабатывать свои конспек-

ты лекции, делая в нем соответствующие записи из литературы, рекомендованной преподавателем и предусмотренной учебной программой. Целесообразно также подготовить тезисы для возмож-

ных выступлений по всем учебным вопросам, выносимым на лабораторные занятия.

При подготовке к занятиям можно также подготовить краткие конспекты по вопросам темы.

Очень эффективным приемом является составление схем и презентаций.

Своевременное и качественное выполнение самостоятельной работы базируется на соблюде-

нии настоящих рекомендаций и изучении рекомендованной литературы.

. 3.2 Примеры задач для практических занятий

Задача 1. Написать процедуру Insert вставки элемента в упорядоченный массив.

Задача 2. Написать функцию поиска второго максимума в массиве (за один проход по массиву).

Задача 3. Написать функцию Search поиска с барьером элемента в массиве.

Задача 4. Написать процедуру бинарного поиска элемента в массиве.

Задача 5. Написать процедуру Sort_insert сортировки массива вставками, используя процедуру Insert вставки элемента в упорядоченный массив.

Задача 6. Написать процедуру Sort_bubble сортировки массива пузырьком.

Задача 7. Сортировка массива Heap_sort (сортировка кучей на месте).

Задача 8. Написать процедуру Quick_sort быстрой сортировки.

Задача 9. При различных входных данных сравнить время работы Quick_sort, Bubble_sort,

Heap_sort.

Задача 10. Дано n отрезков [a[i], b[i]] на прямой (i = 1 . . . n). Найти максимальное k, для которого существует точка прямой, покрытая k отрезками («максимальное число слоев»). Число действий

— порядка n log n.

Задача 11. Оптимизировать сортировку пузырьком по направлению пузырьков (шейкерная сорти-

ровка).

Задача 12. Отсортировать массив с помощью кучи на минимум, используя два массива.

Задача 13. Написать функции Push и Pop для стека, хранящегося в массиве.

Задача 14. Написать процедуру инициализации односвязного списка.

Задача 15. Написать функцию удаления элемента из односвязного списка.

Задача 16. Написать функцию добавления элемента в конец двусвязного списка.

8

Задача 17. Деком называют структуру, сочетающую очередь и стек: класть и забирать элементы можно с обоих концов. Как реализовать дек ограниченного размера на базе массива так, чтобы каждая операция требовала ограниченного числа действий?

Задача 18. Написать функцию добавления элемента в конец односвязного списка.

Задача 19. Написать функцию поиска первого вхождения элемента в односвязный список.

Задача 20. Написать функции Push и Pop для стека, хранящегося в односвязном списке.

Задача 21. Написать процедуру вставки элемента в упорядоченный по возрастанию односвязный список, инициализированный целыми числами.

.4. Методические указания по организации самостоятельной работы

. 4.1 Общие рекомендации для самостоятельной работы

Самостоятельная работа студентов является основным способом овладения учебным мате-

риалом в свободное от обязательных учебных занятий время.

Целями самостоятельной работы студентов являются:

-систематизация и закрепление полученных теоретических знаний и умений студентов;

-углубление и расширение теоретических знаний;

-формирование умений использовать нормативную, правовую, справочную документацию

испециальную литературу;

-развитие познавательных способностей и активности студентов:

-формирования самостоятельности мышления, способностей к саморазвитию, самосовер-

шенствованию и самореализации.

Запланированная в учебном плане самостоятельная работа студента рассматривается как связанная либо с конкретной темой изучаемой дисциплины, либо с подготовкой к расчетной рабо-

те. В данном разделе рассматривается только самостоятельная работа первого вида.

Самостоятельная работа выполняется в два этапа: планирование и реализация.

Планирование самостоятельной работы включает:

-уяснение задания на самостоятельную работу;

-подбор рекомендованной литературы;

-составление плана работы, в котором определяются основные пункты предстоящей подго-

товки.

Составление плана дисциплинирует и повышает организованность в работе.

На втором этапе реализуется составленный план. Реализация включает в себя:

-изучение рекомендованной литературы;

-составление плана (конспекта) по изучаемому материалу (вопросу);

9

- взаимное обсуждение материала.

Необходимо помнить, что на лекции обычно рассматривается не весь материал. Оставшаяся восполняется в процессе самостоятельной работы. В связи с этим работа с рекомендованной лите-

ратурой обязательна.

Работа с литературой и иными источниками информации включает в себя две группы при-

емов: техническую, имеющую библиографическую направленность, и содержательную. Первая группа – уяснение потребностей в литературе; получение литературы; просмотр литературы на уровне общей, первичной оценки; анализ надежности публикаций как источника информации, их относимости и степени полезности. Вторая – подробное изучение и извлечение необходимой ин-

формации.

Для поиска необходимой литературы можно использовать следующие способы:

-поиск через систематический каталог в библиотеке;

-просмотр специальных периодических изданий;

-использование материалов, размещенных в сети Интернет.

В процессе взаимного обсуждения материала закрепляются знания, а также приобретается практика в изложении и разъяснении полученных знаний, развивается речь.

При необходимости студенту следует обращаться за консультацией к преподавателю.

Составление записей или конспектов позволяет составить сжатое представление по изучае-

мым вопросам. Записи имеют первостепенное значение для самостоятельной работы студентов.

Они помогают понять построение изучаемого материала, выделить основные положения, просле-

дить их логику.

Ведение записей способствует превращению чтения в активный процесс. У студента, си-

стематически ведущего записи, создается свой индивидуальный фонд подсобных материалов для быстрого повторения прочитанного. Особенно важны и полезны записи тогда, когда в них находят отражение мысли, возникшие при самостоятельной работе.

Можно рекомендовать следующие основные формы записи: план, конспект, тезисы, пре-

зентация.

План – это схема прочитанного материала, краткий (или подробный) перечень вопросов,

отражающих структуру и последовательность материала. Подробно составленный план вполне заменяет конспект.

Конспект – это систематизированное, логичное изложение материала источника. Объем

конспекта не должен превышать 10 страниц. Шрифт Times New Roman, кегль 14, интервал 1,5.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]