
- •Архитектуры вычислительных систем
- •Нейрокомпьютерные системы
- •2 Нейронные сети обратного распространения с непрерывной функцией активации: архитектура, алгоритмы обучения, применение.
- •3 Конструируемые нейронные сети с конкурирующими нейронами: архитектура, применение.
- •4. Обучаемые нейронные сети с конкурирующими нейронами: архитектура, алгоритмы обучения, применение.
- •Базы данных
- •1 Понятие «базы данных». Основные компоненты базы данных.
- •2 Архитектура системы баз данных.
- •3 Нормальные формы БД. Нормализация данных.
- •4 Язык SQL для работы с реляционными базами данных.
- •5 Хранимые процедуры, триггеры, транзакции.
- •Системы поддержки принятия решений
- •1 Сравнительный анализ парадигм исследования операций и принятия решений. Классификация типов проблем по Г. Саймону.
- •2 Основные элементы многокритериальной задачи принятия решения. Выявление цели и определение типа задачи. Формирование множества альтернатив, критериев, шкал.
- •Структуры данных
- •1 Временная сложность алгоритма. Сравнительный анализ алгоритмов поиска.
- •Алгоритмы поиска в неупорядоченных массивах
- •Алгоритмы поиска в упорядоченных массивах
- •Анализ алгоритма блочного поиска
- •Сортировка Шелла
- •Пирамидальная сортировка
- •Анализ пирамидальной сортировки
- •Улучшенная сортировка обменом 1
- •Анализ улучшенной сортировки обменом 1
- •Улучшенная сортировка обменом 2
- •Анализ улучшенной сортировки обменом 2
- •Анализ улучшенной сортировки обменом 2 аналогичен анали-зу улучшенной сортировки обменом 1. Порядок функций ВС этих алгоритмов в лучшем и худшем случаях одинаковый.
- •Алгоритм быстрой обменной сортировки
- •7 Структуры данных типа граф. Представление графов в памяти. Алгоритмы прохождения в «глубину» и в «ширину». Топологическая сортировка. Матрица достижимости.
- •Технология разработки программного обеспечения
- •1 Технология разработки программного обеспечения. Основные этапы на примере классического жизненного цикла.
- •2 Описание технического задания по ГОСТ.
- •3 Паттерны проектирования. Формат описания.
- •Описание паттернов.
- •Результаты применения паттернов:
- •4 Кодирование. Стандарты на кодирование. Кодирование и проектирование. Исходный код как главный проектный документ.
- •5 Рефакторинг. Цели, описание, примеры.
- •6 Системы управления версиями. Использование в проектах.
- •7 Тестирование. Виды тестирования. Разработка через тестирование.
- •Человеко-машинное взаимодействие
- •2 Применение метафор, идиом, аффордансов и стандартов в пользовательском интерфейсе. Основные принципы. Примеры.
- •4 Основные элементы пользовательского интерфейса и удобство их использования. Особенности. Рекомендации.
- •Теория языков программирования
- •3 Регулярные языки и конечные распознаватели. Использование конечных распознавателей в трансляторах.
- •4 Лексические анализаторы. Основные функции, проектирование и методы программной реализации.
- •5 Нисходящий анализ методом рекурсивного спуска.
- •6 Транслирующие грамматики. Построение нисходящих МП-трансляторов.
- •7 Грамматики польского перевода. Построение восходящих МП-трансляторов.
- •Теория вычислительных процессов
- •1 Автоматы Мили и Мура. Трансформация автоматов. Эквивалентность и минимизация.
- •2 Функциональная эквивалентность, логико-термальная эквивалентность и изоморфизм стандартных схем программ.
- •3 Стандартные и рекурсивные схемы программ. Алгоритмы трансляции.
- •4 Анализ сетей Петри с использованием дерева достижимости и матричных уравнений.
- •Объектно-ориентированное программирование
- •5 Общая характеристика классов в объектно-ориентированном программировании. Особенности реализации классов в различных объектно-ориентированных языках программирования.
- •Сети ЭВМ и телекоммуникации
- •1 Каналы передачи данных. Физический канал. Логический канал. Понятие блока данных. Пример формата блока данных любого протокола.
- •2 Структуризация сетей. Понятие и характеристики основных сетевых топологий. Структурообразующие аппаратные средства и программное обеспечение.
- •4 Характеристика протоколов IP, TCP, ARP, ICMP, POP3, SMTP.

1+2+3+...+(N-2)+(N-1)=(N-1)*N/2, что составляет O(N2).
Чем ближе к отсортированному виду, тем более эффективной становится сортировка простыми вставками. Среднее число сравнений в сортировке простыми вставками также составляет O(N2).
Сортировка Шелла
Сортировка Шелла – это улучшенный метод сортировки вставками. Был предложен Д.Л. Шеллом в 1959 г. Рассмотрим этот метод на примере.
Поскольку первый в сортировке Шелла используемый шаг является большим, отдельные подмассивы достаточно малы по отношению к исходному. Таким образом, сортировка включением над этими подмассивами работает достаточно быстро – O(N2) (эффективно при малом N). Сортировка каждого подмассива приводит к тому, что весь массив становиться ближе к отсортированному виду, что также делает эффективным исполь-зование сортировки включением. Так как массив становится более упорядоченным, то O(N) < порядок ФBC <O(N2).
Если некоторый массив частично отсортирован с использо-ванием шага k, а затем сортируется частично с использованием шага j, то данный массив остается частично отсортированным по шагу k, т.е. последующие частичные сортировки не нарушают результата предыдущих сортировок. Следующий шаг отличается от предыдущего следующим образом: ht=1, hi+1<hi.
Анализ сортировки Шелла
Анализ сортировки Шелла математически сложен. В случае правильного выбора шагов порядок ФВС будет выглядеть как O(N1.2). Д. Кнут предложил выбирать шаги из следующего ряда: 1, 4, 13, 40, 121, … , а вычислять их по следующей формуле: hk–1 = 3* hk +1; ht = 1; t = [log 3 N] – 1 (количество просмотров), где N – размерность исходного массива. Т.е. элементы должны быть взаимно простыми числами. Исходя из этого порядок сортировки может быть аппроксимирован величиной О(N(log 2 N)).

Сортировка выбором
При сортировке выбором из множества неотсортированных элементов выбирают наименьший и присоединяют его к отсортированным ключам.
Алгоритм сортировки выбором
1.Находим наименьший ключ в неупорядоченной части массива.
2.Меняем местами найденный элемент с тем, который соседствует с упорядоченной частью.
3.Пункты 1 и 2 выполняем, пока в неупорядоченной части имеется более одного элемента.
Алгоритм сортировки выбором в некотором смысле противоположен алгоритму сортировки вставками. При сортировке вставками на каждом шаге рассматривается только один очередной элемент входной последовательности и все элементы готового массива для нахождения места вставки. При сортировке простым выбором рассматриваются все элементы входного массива, и наименьший из них отправляется в готовую последовательность.
Анализ сортировки простым выбором
При сортировке простым выбором число сравнений ключей не зависит от их начального порядка. На первом просмотре выполняется N-1 сравнение, на втором — N-2 и т.д. Следовательно, общее число сравнений равно (N-1) + (N-2) + (N-3) + ... + 1=N*(N-1)/2, что составляет O(N2). Порядок функции ВС не зависит от упорядоченности сортируемого массива, однако время сортировки упорядоченного массива будет минимальным, т.к. от упорядоченности массива зависит число перестановок элементов.