Алгоритмы и структуры данных

Общая информация

Программная инженерия

 Объем курса
 1/2 года (1 сем, 1 лекция в неделю)
 Отчётность теоретический зачёт
 Направление  231000, программная инженерия
 Семестр  II (1 курс, весна) 
 Код дисциплины
 CS103
 Трудоёмкость 3 зачётных единицы

Вопросы по курсу (2017 год)

Часть I

  1. Буква, символ, алфавит; кодирование и кодировки до Unicode.
  2. Unicode: пространство символов; модификаторы; нормализация; сравнение; кодировки.
  3. Абсолютная и относительная погрешности; позиционные системы счисления.
  4. Дополнительный код.
  5. Симметричные системы счисления.
  6. Троичные арифметика и логика.
  7. Числа с плавающей запятой; нормализация.
  8. Распределение чисел с плавающей запятой.
  9. Комплексные числа, распределение разных представлений.
  10. Назначение линейных контейнеров; преимущества и недостатки массивов.
  11. Массивы; представление многомерных массивов при помощи векторов Айлифа.
  12. Преимущества и недостатки списков; способы реализации списков; оптимизация работы списков: блочные списки.
  13. Оптимизация работы списков: шитые и иерархические списки; Zipper, стек, очередь и дек на основе списков.
  14. Назначение, преимущества и недостатки деревьев.
  15. AVL - деревья.
  16. B - деревья.

Часть II

  1. R - деревья.
  2. Красно-черные деревья.
  3. Декартовы деревья.
  4. Представления графов.
  5. Хеш-таблицы: назначение, подходы к расширению, преимущества и недостатки перед деревьями.
  6. Хеш-функции: требуемые свойства, примеры.
  7. Распределенные хеш-таблицы.
  8. Строки; представление строк при помощи массивов, списков и деревьев (ациклических графов).
  9. Назначение кучи; куча для элементов одинакового размера.
  10. Тривиальная организация кучи; дефрагментация.
  11. Оптимизация дефрагментации методом граничных маркеров.
  12. Представление контекста вложенных процедур при помощи цепочек фреймов и мониторов.
  13. Передача процедур "вниз" по цепочке вызовов; поддержание статической цепочки.
  14. Произвольная передача замыканий (процедур с контекстом) с копированием или динамическим выделением контекста.
  15. Генетические алгоритмы.
  16. Вдумчивые и конструктивные замечания по программе курса.

    Источники информации

    • Конспект.
    • Дж. Д. Ульман А. В. Ахо, Дж. Э. Хопкрофт. Структуры данных и алгоритмы. Издательский дом «Вильямс», 2000.
    • Дональд Э. Кнут. Искусство Программирования. Издательский дом «Вильямс», 2000.
    • Томас Кормен, Чарльз Лейзерсон, Рональд Ривест. Алгоритмы: построение и анализ. М.: МЦНМО, 1999.
    • Кубенский А. А. Структуры и алгоритмы обработки данных. Объектно-ориентированный подход и реализация на C++. СПб.: БХВ-Петербург, 2004.
    • Кузнецов С. Д. Методы сортировки и поиска. ИСП РАН, Центр Информационных Технологий.
    • Материалы лектора: приложение к данной странице; кому-то может показаться, что это лучше, чем ничего.
    Ċ
    Dmitry Luciv,
    10 февр. 2012 г., 4:20
    Ċ
    Dmitry Luciv,
    21 февр. 2012 г., 7:49
    Ċ
    Dmitry Luciv,
    4 мар. 2014 г., 0:29
    Ċ
    Dmitry Luciv,
    6 апр. 2014 г., 4:36
    Ċ
    Dmitry Luciv,
    22 мар. 2012 г., 23:10
    Ċ
    06.trees.pdf
    (1341k)
    Dmitry Luciv,
    1 апр. 2015 г., 2:56
    Ċ
    Dmitry Luciv,
    1 апр. 2015 г., 3:26
    Ċ
    Dmitry Luciv,
    11 апр. 2012 г., 0:04
    Ċ
    Dmitry Luciv,
    18 апр. 2012 г., 2:02
    Ċ
    Dmitry Luciv,
    2 мая 2012 г., 1:59
    Ċ
    Dmitry Luciv,
    10 мая 2016 г., 8:06
    Ċ
    Dmitry Luciv,
    25 мая 2012 г., 3:37
    ċ
    crc_demo.py
    (1k)
    Dmitry Luciv,
    11 апр. 2012 г., 8:07
    ċ
    fp.c
    (2k)
    Dmitry Luciv,
    26 февр. 2013 г., 4:10
    ċ
    val2posn.scm
    (0k)
    Dmitry Luciv,
    15 мар. 2012 г., 23:53
    ċ
    val2symn.scm
    (1k)
    Dmitry Luciv,
    15 мар. 2012 г., 23:57