В компьютерных науках те концепции, которые вы изучаете, будут бесполезны до тех пор, пока вы их не покажете. Проблема представляет собой основную проблему, которую необходимо решить, поэтому алгоритм представляет собой краткое планирование того, как эта проблема будет решаться в целом. Поэтому это вызывает серьезную обеспокоенность в мире компьютерных наук.
Я думаю, что почти каждому аспекту информатики нужен алгоритм. Позвольте мне показать вам следующий список будет включать различные области информатики и какие алгоритмы они используют.
Automata
Конструкция Powerset. Алгоритм преобразования недетерминированного автомата в детерминированный автомат.
Алгоритм Тодда-Кокстера. Процедура генерации смежных классов.
Искусственный интеллект
Альфа-бета. Альфа макс плюс бета мин. Широко используется в настольных играх.
Ant-алгоритмы. Оптимизация муравьиных колоний - это набор алгоритмов, вдохновленный поведением муравьев для решения проблемы, поиска оптимального пути между двумя точками.
DE (Дифференциальная эволюция). Решить проблему полиномиальной подгонки Чебышева.
Признание саркастических предложений под надзором в онлайн-обзорах продуктов. Алгоритм, который распознает сакармы или иронию в твите или онлайн-документе. Такой алгоритм будет существенным для программирования роботов-гуманоидов.
Компьютерное зрение
Воплощение. Представьте изображение или видео меньшим.
Подсчет объектов на изображении . Использует алгоритм маркировки подключенного компонента, чтобы сначала пометить каждый объект, а затем подсчитать объекты.
Алгоритм О'Кэрролла. Исходя из математического преобразования зрения насекомых, этот алгоритм оценивает, как обойти избегание объектов.
Генетические алгоритмы
Они используют три оператора. выбор (выберите решение), воспроизведение (используйте выбранные решения для создания других), замена (замените решение, если лучше).
Фитнес пропорциональный выбор. Также известна как выбор колеса рулетки, это функция, используемая для выбора решений.
Усечение выбора. Еще один метод выбора решений, заказанных по фитнесу.
Выбор турнира. Выберите лучшее решение по виду турнира.
Стохастическая универсальная выборка. Индивидуумы сопоставляются с непрерывными сегментами линии, так что сегмент каждого индивидуума по размеру равен его физической форме точно так же, как при выборе колеса рулетки.
Нейронные сети
Сеть Хопфилда. Рекуррентная искусственная нейронная сеть, служащая адресно-адресной системой памяти с двоичными пороговыми единицами. Они сходятся к стабильному состоянию.
Обратное распространение. Контролируемая методика обучения используется для обучения искусственным нейронным сетям.
Самоорганизующаяся карта (карта Кохонена). Нейронные сети обучаются с использованием обучения без контроля для получения низкоразмерного (2D, 3D) представления обучающих образцов. Хорошо подходит для визуализации многомерных данных.
Биоинформатика
Needleman-Wunsch. Выполняет глобальное выравнивание для двух последовательностей, для белковых или нуклеотидных последовательностей.
Smith-Waterman. Вариация Рукоделия-Вунша.
компрессия
Алгоритмы сжатия без потерь
Преобразование Барроуза-Уилера. Предварительная обработка полезна для улучшения сжатия без потерь.
Выкачивает. Сжатие данных используется ZIP.
Дельта-кодирование. Помощь в сжатии данных, в которых часто встречаются последовательные данные.
Инкрементное кодирование. Дельта-кодирование применяется к последовательностям строк.
LZW. (Лемпель-Зив-Велч). Преемник LZ78. Создает таблицу перевода из данных для сжатия. Используется в графическом формате GIF.
LZ77 и 78. Основа дальнейших вариаций LZ (LZW, LZSS, ...). Они оба словарные кодеры.
LZMA. Коротко для цепочки-алгоритма Лемпеля-Зива-Маркова.
LZO. Алгоритм сжатия данных, ориентированный на скорость.
PPMПрогноз по частичному сопоставлению. Адаптивная методика статистического сжатия данных на основе контекстного моделирования и прогнозирования. Кодирование Шеннона-Фано. Создает префиксные коды на основе набора символов и их вероятностей.
Усеченный двоичный файл. Энтропийное кодирование обычно используется для равномерного распределения вероятностей с конечным алфавитом. Улучшить двоичное кодирование.
Длина кодирования. Первичное сжатие, которое заменяет последовательность одного и того же кода на количество вхождений.
Sequitur. Инкрементальный вывод грамматики на строку.
EZW (встроенный вейвлет Zerotree). Прогрессивное кодирование для сжатия изображения в битовый поток с повышением точности. Может быть сжатие с потерями также с лучшими результатами.
Энтропийное кодирование
Схема кодирования, которая присваивает коды символам, чтобы согласовать длины кодов с вероятностями символов.
Кодирование Хаффмана. Простое сжатие без потерь с использованием относительных частот символов.
Адаптивное кодирование Хаффмана. Метод адаптивного кодирования на основе кодирования Хаффмана.
Арифметическое кодирование. Расширенное энтропийное кодирование.
Диапазон кодирования. То же, что и арифметическое кодирование, но выглядит немного иначе.
Одинарное кодирование. Код, представляющий число n с n единиц, за которыми следует ноль. Элиас дельта, гамма, омега кодирование. Универсальный код, кодирующий натуральные числа. Кодирование Фибоначчи. Универсальный код, который кодирует натуральные числа в двоичные кодовые слова.
Кодирование Голомба. Форма энтропийного кодирования, оптимальная для алфавитов, следующих за геометрическими распределениями.
Кодирование риса. Форма энтропийного кодирования, оптимальная для алфавитов, следующих за геометрическими распределениями.
Алгоритмы сжатия с потерями
Линейное прогнозирующее кодирование. Сжатие с потерями путем представления спектральной огибающей цифрового сигнала речи в сжатом виде.
А-закон алгоритм. Стандартный алгоритм компандирования.
Му-закон алгоритм. Стандартный алгоритм сжатия или компоновки аналогового сигнала.
Фрактальная компрессия. Метод, используемый для сжатия изображений с использованием фракталов.
Преобразование кодирования. Тип сжатия данных для таких данных, как аудиосигналы или фотографические изображения.
Векторное квантование. Техника часто используется при сжатии данных с потерями.
Вейвлет-сжатие. Форма сжатия данных хорошо подходит для сжатия изображений и аудио.
криптография
Секретный ключ (симметричное шифрование)
Используйте секретный ключ (или пару напрямую связанных ключей) для дешифрования и шифрования.
Расширенный стандарт шифрования (AES) , также известный как Rijndael.
Blowfish. Разработан Шнайером как алгоритм общего назначения, предназначенный для замены стареющего DE.
Стандарт шифрования данных (DES) , ранее алгоритм DE.
IDEA (международный алгоритм шифрования данных) . Ранее IPES (улучшенный PES), еще одна замена для DES. Используется PGP (Pretty Good Privacy). Выполняет преобразования данных, разбитых на блоки, используя ключ.
RC4 или ARC4. Потоковый шифр широко используется в таких протоколах, как SSL для интернет-трафика и WEP для беспроводных сетей.
Алгоритм крошечного шифрования. Легко реализовать алгоритм блочного шифрования с использованием некоторых формул.
PES (Предлагаемый стандарт шифрования). Старое имя для ИДЕИ.
Открытый ключ (асимметричное шифрование)
Используйте пару ключей, обозначенных как открытый ключ и закрытый ключ. Открытый ключ шифрует сообщение, только личный ключ позволяет расшифровать его.
DSA (алгоритм цифровой подписи). Генерация ключей с простыми и случайными числами. Был использован агентствами США, а теперь и общественным достоянием.
ElGamal. Основано на Diffie-Hellman, используемом программным обеспечением GNU Privacy Guard, PGP и другими криптографическими системами.
ОГА (Ривест, Шамир, Адлеман). Широко используется в протоколах электронной коммерции. Используйте простые числа.
Обмен ключами Диффи-Хеллмана (Меркле) (или экспоненциальный обмен ключами). Способ и алгоритм для обмена секретом по незащищенному каналу связи. Используется RSA.
NTRUEncrypt. Используйте кольца многочленов с конволюционными умножениями.
Функции дайджеста сообщений
Дайджест сообщения - это код, полученный в результате шифрования строки или данных любой длины, обработанных хеш-функцией.
MD5. Используется для проверки ISO-образов компакт-дисков или DVD-дисков.
RIPEMD (Дайджест сообщения оценки примитивов RACE). Основан на принципах MD4 и аналогичен SHA-1.
SHA-1 (безопасный алгоритм хеширования 1). Чаще всего используется набор связанных криптографических хеш-функций SHA. Был разработан агентством АНБ.
HMAC. аутентификация сообщения с хеш-ключом.
Тигр (ТТХ). Обычно используется в хеши Tiger Tree.
Криптография с использованием псевдослучайных чисел
. Генераторы случайных чисел
Техники в криптографии
Разделение секретов, Разделение секретов, Разделение ключей, M из N алгоритмов.
Секретная схема обмена Шамира. Это формула, основанная на полиномиальной интерполяции.
Секретная схема обмена Блекли. Имеет геометрическую природу, секрет - это точка в м-мерном пространстве.
Другие методы и расшифровка
Сумма подмножества. Учитывая набор целых чисел, любая подмножество сумма равна нулю? Используется в криптографии.
Алгоритм Шора. Квантовый алгоритм способен расшифровывать код на основе асимметричных функций, таких как RSA.
Геометрия
Подарочная упаковка. Определение выпуклой оболочки множества точек.
Расстояние Гилберта-Джонсона-Керти. Определение наименьшего расстояния между двумя выпуклыми фигурами.
Сканирование Грэма. Определение выпуклой оболочки множества точек на плоскости.
Пересечение отрезка. Поиск, пересекаются ли линии с алгоритмом стреловидности.
Точка в многоугольнике. Проверяет, находится ли заданная точка в заданной.
Пересечение Луч / Плоскость.
* Пересечение линии / треугольника. * Частный случай пересечения луча / плоскости.
Полигонизация неявных поверхностей. Приближаем неявную поверхность с полигональным представлением.
Триангуляции.Метод оценки расстояния до точки от углов до других точек, расстояние которых известно.
Графики
3D Surface Tracker Technology. Процесс добавления изображений на стены в видео, в то время как скрытые поверхности принимаются во внимание.
Беллмана-Форда. Вычисляет кратчайшие пути во взвешенном графе (где некоторые веса ребер могут быть отрицательными).
Алгоритм Дейкстры. Вычисляет кратчайшие пути в графе с неотрицательными весами ребер.
Методы возмущений. Алгоритм, который вычисляет локально кратчайшие пути в графе.
Флойд-Воршалл. Решает проблему кратчайшего пути для всех пар во взвешенном ориентированном графе.
Флойд на велосипеде. Находит циклы в итерациях.
Джонсон. Алгоритм кратчайшего пути всех пар в разреженном взвешенном графе.
Крускала.Находит минимальное остовное дерево для графа.
Прима. Находит минимальное остовное дерево для графа. Также называется алгоритмом DJP , Jarník или Prim – Jarník.
* Boruvka. * Находит минимальное остовное дерево для графа.
Ford-Фулкерсон. Вычисляет максимальный поток на графике.
Эдмондс-Карп. Реализация Форд-Фулкерсон.
Неблокирующий переключатель минимального охвата. Для телефонной станции.
Вудхаус-Sharp. Находит минимальное остовное дерево для графа.
Весна основана. Алгоритм построения графика.
Венгерский язык. Алгоритм нахождения идеального соответствия.
Алгоритм раскраски. Алгоритм раскраски графа.
Ближайший соседНайти ближайшего соседа.
Топологическая сортировка. Сортируйте направленный ациклический граф таким образом, чтобы каждый узел был перед всеми узлами, к которым у него есть ребра (согласно направлениям).
Алгоритм наименьшего общего предка Тарьяна. Вычислить наименьших общих предков для пар узлов в дереве.
Графика
Алгоритм Брезенхема. Использует переменные решения для построения прямой линии между двумя указанными точками.
Пейзаж Нарисуйте трехмерный пейзаж.
* Алгоритм линии DDA. * Использует математические операции с плавающей точкой для построения прямой линии между двумя указанными точками.
Заливка. Заполняет связанный регион цветом.
Восстановление изображения. Восстановление фото, улучшение изображений.
Алгоритм линии Сяолин Ву. Линия сглаживания.
Алгоритм художника. Обнаруживает видимые части трехмерного пейзажа.
Трассировка лучей. Реалистичная визуализация изображений.
Фонг затенение. Модель освещения и метод интерполяции в трехмерной компьютерной графике.
Гуро затенение.Смоделируйте различные эффекты света и цвета на поверхности трехмерного объекта.
Scanline рендеринг. Создает изображение, перемещая воображаемую линию.
Глобальное освещение. Учитывает прямое освещение и отражение от других объектов.
Интерполяция. Построение новых точек данных, таких как цифровой зум.
Resynthesizer. Удалите объект на фотографии и восстановите фон. Используется Photoshop и The Gimp. Ресинтезатор учебник.
Алгоритм наклона-перехвата. Это реализация формулы наклона-пересечения для рисования линии.
Сплайн-интерполяция. Уменьшает ошибку с феноменом Рунге.
Технология 3D Surface Tracker. Добавление изображений или видео на стены в видео, скрытые поверхности принимаются во внимание.
Списки, массивы и деревья
Поиск
Поиск по словарю. Смотрите прогнозный поиск.
Алгоритм выбора. Находит k-й по величине элемент в списке.
Алгоритм двоичного поиска. Находит элемент в отсортированном списке.
Поиск в ширину. Обходит график уровень за уровнем.
Поиск в глубину Обходит граф ветку за веткой.
Лучший поиск в первую очередь. Обходит график в порядке вероятности важности, используя очередь с приоритетами.
Дерево поиска. * Особый случай лучше первого поиска , который использует эвристические методы для повышения скорости.
Поиск равномерной стоимости. Поиск по дереву, который находит маршрут с наименьшими затратами, где затраты варьируются.
Прогнозный поиск.Бинарный подобный поиск, который определяет величину поискового запроса в сравнении с высокими и низкими значениями в поиске.
Хеш-таблица. Свяжите ключи с элементами в несортированной коллекции, чтобы получить их за линейное время.
Интерполированный поиск. Смотрите прогнозный поиск.
Сортировка
Двоичное дерево сортирует. Сортировка двоичного дерева, инкрементная, похожая на сортировку вставкой.
Bogosort. Неэффективный случайный вид настольной карты.
Пузырьковая сортировка. Для каждой пары индексов меняйте позиции, если они вышли из строя.
Ковш сортировать. Разделите список на сегменты и отсортируйте их по отдельности. Обобщает голубиный сорт.
Коктейльная сортировка (или двунаправленный пузырь, шейкер, пульсация, челнок, сортировка по счастливому часу). Вариация сортировки пузырьков, которая сортирует в обоих направлениях каждый проход по списку.
Расческа Эффективное изменение пузырьковой сортировки, которое устраняет «черепахи», небольшие значения в конце списка и использует пробелы между значениями.
Подсчет сортировки.Он использует диапазон чисел в списке A для создания массива B этой длины. Индексы в B используются для подсчета, сколько элементов в A имеют значение меньше, чем i.
Сортировка гномов. Или интроспективный вид. Он начинается в быстрой сортировке и переключается в heapsort на определенном уровне рекурсии.
Сортировка слиянием.Аналогично сортировке вставкой, за исключением того, что перемещение элемента на его место выполняется серией перестановок, как при пузырьковой сортировке.
Пирамидальная сортировка. Преобразуйте список в кучу, продолжайте удалять самый большой элемент из кучи и добавляйте его в конец списка.
Вид вставки. Определите место текущего элемента в списке отсортированных и вставьте его туда.
Introsort. Сортируйте первую и вторую половину списка отдельно, затем объединяйте отсортированные списки.
Блин сортировать. Обратные элементы некоторого префикса последовательности.
Голубиная дыра. Заполните пустой массив всеми элементами массива для сортировки по порядку.
Почтальон Иерархический вариант сортировки ведра, используемый почтовыми отделениями.
Выберите самый маленький из оставшихся элементов, добавьте его в конец отсортированного списка.
Оболочка сортировка.Quicksort. Разделите список на два, причем все элементы в первом списке располагаются перед всеми элементами во втором списке .; затем отсортируйте два списка. Часто метод выбора.
Корень сортировки. Сортирует ключи, связанные с элементами, или целые числа путем обработки цифр.
Выбор сортировки. Улучшает сортировку вставок с использованием пробелов между значениями.
Плавная сортировка. Смотри heapsort.
Стохастическая сортировка. Смотрите богосорт.
и многое другое ...