Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СТА (лекции+лабы) / СТА Лаба 2.docx
Скачиваний:
52
Добавлен:
16.03.2016
Размер:
93.81 Кб
Скачать

11

Ста: Лабораторная работа №2 - Алгоритмы поиска и сортировки

Версия 2.0, 27 сентября 2013г.

(С) 2012-2013, Зайченко Сергей Александрович, к.т.н, ХНУРЭ, доцент кафедры АПВТ

Правила выполнения лабораторной работы

  1. Лабораторная работа выполняется либо бригадой из 2 человек, либо индивидуально. Если студент претендует на оценку “отлично”, работа должна выполняться полностью индивидуально.

  1. В работе на выбор студента предлагаются варианты трех уровней сложности:

  • Базовый уровень - оценка в интервале 15-20 баллов.

  • Углубленный уровень - оценка в интервале 21-25 баллов.

  • Амбициозный уровень - оценка не менее 25 баллов + бонусные баллы на усмотрение преподавателя.

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

  1. Работа оценивается не только по корректности функционирования решений задач, но и по культуре оформления исходного кода в читабельном виде, адекватности разбиения решения на модули и функции.

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

  1. Защита работы:

  • устная и короткая без отчета в случае защиты в день лабораторной работы;

  • с полноценным печатным отчетом и ответами на теоретические вопросы в случае защиты в другие дни.

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

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

Литература к лабораторной работе

  1. Р. Седжвик “Алгоритмы на С++”:

  • Глава 6 “Элементарные методы сортировки”.

  • Глава 7 “Быстрая сортировка”.

  • Глава 8 “Слияние и сортировка слиянием”.

  • Глава 12 “Таблицы символов и деревья бинарного поиска” (подразделы 12.1-12.4)

  • Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн “Алгоритмы. Построение и анализ”, 2 издание:

    • Глава 7 “Быстрая сортировка”.

    • Глава 10 “Элементарные структуры данных” (подразделы 10.1-10.3)

  • А. Ахо, Д. Хопкрофт, Д. Ульман “Структуры данных и алгоритмы”:

    • Глава 2 “Основные абстрактные типы данных” (подраздел 2.5).

    • Глава 4 “Основные операторы множеств” (подразделы 4.1-4.6).

    • Глава 8 “Сортировка”.

  • Д. Кнут “Искусство программирования”:

    • Том 3, глава 5, раздел 5.2 “Внутренняя сортировка”.

    • Том 3, глава 6, раздел 6.1 “Последовательный поиск”.

    • Том 3, глава 6, раздел 6.2 “Поиск путем сравнения ключей”.

    Исходные данные

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

    • Отображение ( integer_map.hpp,integer_map_vector_impl.cpp).

    • Множество ( integer_set.hpp,integer_set_list_impl.cpp,integer_set_sorted_list_impl.cpp).

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

    Выдавать данные файлы за собственные решения настоятельно не рекомендуется :)

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

  • Соседние файлы в папке СТА (лекции+лабы)