Фундаментальные вычислительные алгоритмы. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Фундаментальные вычислительные алгоритмы.



2.6.1.  Простые численные алгоритмы.

2.6.2.  Классические комбинаторные алгоритмы.

2.6.3.   Алгоритмы с подмножествами: генерация, восстановление по номеру и построение номера, генерация следующего и предыдущего (прибавление и вычитание единицы).

2.6.4.   Алгоритмы с сочетаниями и перестановками: генерация, восстановление по номеру и построение номера, генерация следующего и предыдущего.

2.6.5.   Алгоритмы последовательного и бинарного поиска.

2.6.6.   Квадратичные методы сортировки (сортировка методом выбора, сортировка вставками).

2.6.7.   Сортировка подсчетом за линейное время.

2.6.8.   Алгоритмы сортировки за время O(N log N) (быстрая сортировка, пирамидальная сортировка, сортировка слиянием).*

2.6.9.   Цифровая сортировка.*

2.6.10. Алгоритм вычисления номера слова в лексикографически упорядоченном множестве перестановок его символов.*

2.6.11. Арифметика многоразрядных целых чисел.*

Числовые алгоритмы.

2.7.1.  Разложение числа на простые множители.

2.7.2.  Решето Эратосфена.

2.7.3.  Алгоритм Евклида.

2.7.4.   Расширенный алгоритм Евклида. Способы реализации алгоритма без деления.*

2.7.5.   Решение линейных сравнений с помощью алгоритма Евклида.*

2.7.6.   Эффективная реализация решета Эратосфена (O(n)).*

2.7.7.   Эффективная проверка числа на простоту.*

2.7.8.   Быстрые алгоритмы разложения чисел на простые множители. Ро-эвристика.*

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

2.8.1.  Поиск подстроки в строке. Наивный метод.

2.8.2.  Алгоритмы поиска подстроки в строке за O(N+M).*

2.8.3.  Периодические и циклические строки.*

2.8.4.  Алгоритм поиска нескольких подстрок за линейное время.*

Алгоритмы на графах.

2.9.1.   Вычисление длин кратчайших путей в дереве.

2.9.2.   Обход графа в ширину и в глубину.

2.9.3.   Способы реализации поиска в ширину (“наивный” и с очередью).

2.9.4.   Проверка графа на связность.

2.9.5.   Алгоритмы поиска кратчайшего пути во взвешенных графах.

2.9.6.   Топологическая сортировка графа, нахождение компонент сильной связности и построение диаграммы порядка.*

2.9.7.   Циклы отрицательной длины – критерий наличия, поиск.*

2.9.8.   Задача о синхронизации времени и задача о системе неравенств.*

2.9.9.   Алгоритм поиска эйлерова цикла (в том числе лексикографически минимального).*

2.9.10. Нахождение транзитивного замыкания графа.*

2.9.11. Алгоритмы нахождения взвешенных остовных деревьев.*

2.9.12. Алгоритмы отыскания компонент двусвязности, точек сочленения, мостов с помощью поиска в глубину.*

2.9.13. Алгоритм нахождения максимального паросочетания и минимального вершинного покрытия в двудольном графе.*

2.9.14. Поиск максимального потока в сети.*

Динамическое программирование.

2.10.1. Основная идея динамического программирования. Рекурсивная реализация и развертывание в цикл.

2.10.2. Задачи с монотонным направлением движения в таблице.

2.10.3. Задача о рюкзаке – решение методом динамического программирования.

2.10.4. Оптимизация решения задачи динамического программирования на примере задачи о рюкзаке (исключение лишних параметров).*

2.10.5. Восстановление решения в задачах динамического программирования.*

2.10.6. Общая схема решения задач динамического программирования.*

2.11. Алгоритмы теории игр. *

2.11.1. Динамическое программирование и полный перебор как методы решения игровых задач. Игры на ациклическом графе.*

2.11.2. Оценка позиций. Альфа-бета отсечение.*

Геометрические алгоритмы.

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

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

2.12.3. Нахождение расстояний между объектами на плоскости.*

2.12.4. Алгоритмы определения пересечения отрезков на плоскости.*

2.12.5. Алгоритмы вычисления площади многоугольника с заданными координатами вершин. Случай целочисленной решетки (формула Пика).*

2.12.6. Алгоритмы построения выпуклой оболочки (алгоритмы Грэхема и Джарвиса).*

2.12.7. Окружности на плоскости, пересечение их с другими геометрическими объектами.*

2.12.8. Эффективный алгоритм нахождения пары ближайших точек на плоскости.*

Основы программирования.

Языки программирования.

3.1.1.  Классификация языков программирования.

3.1.2.  Процедурные языки.

3.1.3.  Основы синтаксиса и семантики языков высокого уровня.

3.1.4.  Формальные методы описания синтаксиса: форма Бэкуса-Наура.*

3.1.5.  Объектно-ориентированные языки.*



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 105; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.114.142 (0.006 с.)