C++ forum
Четверг, 30.01.2025, 10:45
Главная Регистрация RSS
Приветствую Вас, Гость
Меню
Категории раздела
Tak.ru
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Мини-чат
Друзья Сайта
ТОП САЙТОВ
Главная » Файлы » Книги

Алгоритмы
[ Скачать с сервера (3.46 Mb) ] 08.11.2012, 12:41
Хорошая подборка алгоритмов,кратких путей алгоритмов! 
Алгебра
Вот содержание:
элементарные алгоритмы
●     Функция Эйлера и её вычисление
●     Бинарное возведение в степень за O (log N)
●     Алгоритм Евклида нахождения НОД (наибольшего общего делителя)
●     Решето Эратосфена
●     Расширенный алгоритм Евклида
●     Числа Фибоначчи и их быстрое вычисление
●     Обратный элемент в кольце по модулю
●     Код Грея
●     Длинная арифметика
●     Дискретное логарифмирование по модулю M алгоритмом baby-step-giant-step Шэнкса за O (sqrt(M) log M)
●     Диофантовы уравнения с двумя неизвестными: AX+BY=C
●     Модульное линейное уравнение первого порядка: AX=B
●     Китайская теорема об остатках. Алгоритм Гарнера
●     Нахождение степени делителя факториала
●     Троичная сбалансированная система счисления
●     Вычисление факториала N! по модулю P за O (P log N)
●     Перебор всех подмасок данной маски. Оценка 3N
для суммарного количества подмасок всех масок
●     Первообразный корень. Алгоритм нахождения
●     Дискретное извлечение корня
●     Решето Эратосфена с линейным временем работы
сложные алгоритмы
●     Тест BPSW на простоту чисел за O (log N)
●     Эффективные алгоритмы факторизации: Полларда p-1, Полларда p, Бента, Полларда Монте-Карло, Ферма
●     Быстрое преобразование Фурье за O (N log N). Применение к умножению двух полиномов или длинных чисел
Графы
элементарные алгоритмы
●     Поиск в ширину
●     Поиск в глубину
●     Топологическая сортировка
●     Поиск компонент связности
компоненты сильной связности, мосты и т.д.
●     Поиск компонент сильной связности, построение конденсации графа за O (N + M)
●     Поиск мостов за O (N + M)
●     Поиск точек сочленения за O (N + M)●     Поиск мостов в режиме онлайн за O(1) в среднем
кратчайшие пути из одной вершины
●     Алгоритм Дейкстры нахождения кратчайших путей от заданной вершины до всех остальных вершин за O (N2
 + M)
●     Алгоритм Дейкстры для разреженного графа нахождения кратчайших путей от заданной вершины до всех
остальных вершин за O (M log N)
●     Алгоритм Форда-Беллмана нахождения кратчайших путей от заданной вершины до всех остальных вершин за O (N M)
●     Алгоритм Левита нахождения кратчайших путей от заданной вершины до всех остальных вершин за O (N M)
кратчайшие пути между всеми парами вершин
●     Нахождение кратчайших путей между всеми парами вершин графа методом Флойда-Уоршелла за O (n
3
)
●     Подсчёт количества путей фиксированной длины между всеми парами вершин, нахождение кратчайших
путей фиксированной длины за O (n
3
 log k)
минимальный остов
●     Минимальное остовное дерево. Алгоритм Прима за O (n
2
) и за O (m log n)
●     Минимальное остовное дерево. Алгоритм Крускала за O (M log N + N2
)
●     Минимальное остовное дерево. Алгоритм Крускала со структурой данных 'система непересекающихся множеств' за O 
(M log N)
●     Матричная теорема Кирхгофа. Нахождение количества остовных деревьев за O (N3
)
●     Код Прюфера. Формула Кэли. Количество способов сделать граф связным
циклы
●     Нахождение отрицательного цикла в графе за O (N M)
●     Нахождение Эйлерова пути или Эйлерова цикла за O (M)
●     Проверка графа на ацикличность и нахождение цикла за O (M)
наименьший общий предок (LCA)
●     Наименьший общий предок. Нахождение за O (sqrt (N)) и O (log N) с препроцессингом O (N)
●     Наименьший общий предок. Нахождение за O (log N) с препроцессингом O (N log N) (метод двоичного подъёма)
●     Наименьший общий предок. Нахождение за O (1) с препроцессингом O (N) (алгоритм Фарах-Колтона и Бендера)
●     Задача RMQ (Range Minimum Query - минимум на отрезке). Решение за O (1) с препроцессингом O (N)
●     Наименьший общий предок. Нахождение за O (1) в режиме оффлайн (алгоритм Тарьяна)
потоки и связанные с ними задачи
●     Алгоритм Эдмондса-Карпа нахождения максимального потока за O (N M2
)
●     Метод Проталкивания предпотока нахождения максимального потока за O (N4
)
●     Модификация метода Проталкивания предпотока за O (N3
)
●     Поток с ограничениями
●     Поток минимальной стоимости (min-cost-flow). Алгоритм увеличивающих путей за O (N3
 M)
●     Задача о назначениях. Решение с помощью min-cost-flow за O (N5
)
●     Задача о назначениях. Венгерский алгоритм (алгоритм Куна) за O (N4
)
●     Нахождение минимального разреза алгоритмом Штор-Вагнера за O(N3
)
●     Поток минимальной стоимости, циркуляция минимальной стоимости. Алгоритм удаления циклов отрицательного веса
●     Алгоритм Диница нахождения максимального потока
паросочетания и связанные с ними задачи
●     Алгоритм Куна нахождения наибольшего паросочетания за O (N M)
●     Проверка графа на двудольность и разбиение на две доли за O (M)
●     Нахождение наибольшего по весу вершинно-взвешенного паросочетания за O (N3
)●     Алгоритм Эдмондса нахождения наибольшего паросочетания в произвольных графах за O (N3
)
●     Покрытие путями ориентированного ациклического графа
●     Матрица Татта. Рандомизированный алгоритм для поиска максимального паросочетания в произвольном графе
связность
●     Рёберная связность. Свойства и нахождение
●     Вершинная связность. Свойства и нахождение
●     Построение графа с указанными величинами вершинной и рёберной связностей и наименьшей из степеней вершин
К-ые пути
обратные задачи
●     Обратная задача SSSP (inverse-SSSP - обратная задача кратчайших путей из одной вершины) за O (M)
●     Обратная задача MST (inverse-MST - обратная задача минимального остова) за O (N M2
)
разное
●     Покраска рёбер дерева (структуры данных) - решение за O (log N)
●     Задача 2-SAT (2-CNF). Решение за O (N + M)
●     Heavy-light декомпозиция
Геометрия
элементарные алгоритмы
●     Длина объединения отрезков на прямой за O (N log N)
●     Знаковая площадь треугольника и предикат 'По часовой стрелке'
●     Проверка двух отрезков на пересечение
●     Нахождение уравнения прямой для отрезка
●     Нахождение точки пересечения двух прямых
●     Нахождение точки пересечения двух отрезков
●     Нахождение площади простого многоугольника за O (N)
●     Теорема Пика. Нахождение площади решётчатого многоугольника за O (1)
●     Задача о покрытии отрезков точками
●     Центры тяжести многоугольников и многогранников
более сложные алгоритмы
●     Пересечение окружности и прямой
●     Пересечение двух окружностей
●     Построение выпуклой оболочки алгоритмом Грэхэма-Эндрю за O (N log N)
●     Нахождение площади объединения треугольников. Метод вертикальной декомпозиции
●     Проверка точки на принадлежность выпуклому многоугольнику за O (log N)
●     Нахождение вписанной окружности в выпуклом многоугольнике с помощью тернарного поиска за O (N log
2
 C)
●     Нахождение вписанной окружности в выпуклом многоугольнике методом сжатия сторон за O (N log N)
●     Диаграмма Вороного в двумерном случае, её свойства, применение. Простейший алгоритм построения за O(N4
)
●     Нахождение всех граней, внешней грани планарного графа за O (N log N)
●     Нахождение пары ближайших точек алгоритмом разделяй-и-властвуй за O (N log N)
●     Преобразование геометрической инверсии
●     Поиск общих касательных к двум окружностям
●     Поиск пары пересекающихся отрезков алгоритмом заметающей прямой за O (N log N)Строки
●     Z-фунция строки и её вычисление за O (N)
●     Префикс-функция, её вычисление и применения. Алгоритм Кнута-Морриса-Пратта
●     Алгоритмы хэширования в задачах на строки
●     Алгоритм Рабина-Карпа поиска подстроки в строке за O (N)
●     Разбор выражений за O (N). Обратная польская нотация
●     Суффиксный массив. Построение за O (N log N) и применения
●     Суффиксный автомат. Построение за O (N) и применения
●     Нахождение всех подпалиндромов за O (N)
●     Декомпозиция Линдона. Алгоритм Дюваля. Нахождение наименьшего циклического сдвига за O (N) времени и O (1) памяти
●     Алгоритм Ахо-Корасик
●     Суффиксное дерево. Алгоритм Укконена
●     Поиск всех тандемных повторов в строке алгоритмом Мейна-Лоренца (разделяй-и-властвуй) за O (N log N)
●     Поиск подстроки в строке с помощью Z- или Префикс-функции. Алгоритм Кнута-Морриса-Пратта
●     Решение задачи "сжатие строки"
●     Определение количества различных подстрок за O (N2
 log N)
Структуры данных
●     Sqrt-декомпозиция
● Дерево Фенвика
●     Система непересекающихся множеств
●     Дерево отрезков
●     Декартово дерево (treap, дерамида)
●     Модификация стека и очереди для извлечения минимума за O (1)
●     Рандомизированная куча
Алгоритмы на последовательностях
●     Задача RMQ (Range Minimum Query - минимум на отрезке)
●     Нахождение наидлиннейшей возрастающей подпоследовательности за O (N2
) и O (N log N)
●     K-ая порядковая статистика за O (N)
●     Нахождение наидлиннейшей возрастающей подпоследовательности за O (N2
) и O (N log N)
Динамика
●     Динамика по профилю. Задача "паркет"
●     Нахождение наибольшей нулевой подматрицы за O (N M)
Линейная алгебра
●     Метод Гаусса решения системы линейных уравнений за O (N3
)●     Нахождение ранга матрицы за O (N3
)
●     Вычисление определителя матрицы методом Гаусса за O (N3
)
●     Вычисление определителя методом Краута за O (N3
)
Численные методы
●     Интегрирование по формуле Симпсона
●     Поиск корней методом Ньютона (касательных)
●     Тернарный поиск
Комбинаторика
●     Биномиальные коэффициенты
●     Числа Каталана
●     Ожерелья
● Расстановка слонов на шахматной доске
●     Правильные скобочные последовательности. Нахождение лексикографически следующей, K-ой, определение номера
●     Количество помеченных графов, связных помеченных графов, помеченных графов с K компонентами связности
●     Генерация сочетаний из N элементов
●     Лемма Бернсайда. Теорема Пойа
●     Принцип включений-исключений
Теория игр
●     Игры на произвольных графах. Метод ретроспективного анализа за O (M)
●     Теория Шпрага-Гранди. Ним
Расписания
●     Задача Джонсона с одним станком
●     Задача Джонсона с двумя станками
●     Оптимальный выбор заданий при известных временах завершения и длительностях выполнения
Разное
●     Задача Иосифа
●     Игра Пятнашки: существование решения
●     Дерево Штерна-Броко. Ряд Фарея
●     Поиск подотрезка массива с максимальной/минимальной суммой за O(N)
Информация взята с сайта e-maxx.ru

Категория: Книги | Добавил: NoOb | Теги: книга, с#, с++, Алгоритмы
Просмотров: 11254 | Загрузок: 953 | Комментарии: 1 | Рейтинг: 4.7/13
Всего комментариев: 1
1 NoOb  
0
biggrin Очень хорошая подборка!!!!!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]