Это только для демонстрационных целей. В стандартной библиотеке JavaScript существует множество реализаций, которые намного лучше по соображениям производительности.
Спасибо за TheAlgorithms: https://github.com/thealgorithms
Из Википедии: пузырьковая сортировка, иногда называемая тонущей, представляет собой простой алгоритм сортировки, который неоднократно проходит через список, который будет сортироваться, сравнивает каждую пару смежных элементов и обменяется их, если они находятся в неправильном порядке. Пропуск через список повторяется до тех пор, пока не требуется никаких изменений, что указывает на то, что список отсортирован.
Характеристики
Из Википедии: вставка сортирует простой алгоритм сортировки, который создает окончательный сортированный массив (или список) по одному элементу за раз. Это гораздо менее эффективно в больших списках, чем более продвинутые алгоритмы, такие как QuickSort, Heapsort или Serge Sort.
Характеристики
Из Википедии: в информатике сортировка слияния (также обычно пишется Mergesort) является эффективным, общим назначением, основанным на сравнении алгоритм сортировки. Большинство реализаций создают стабильный сортирование, что означает, что реализация сохраняет входной порядок равных элементов в отсортированном выходе. Mergesort - это алгоритм разделения и завоевания, который был изобретен Джоном фон Нейманом в 1945 году.
Характеристики
Из Википедии: QuickSort (иногда называемый разбилми-обменом) является эффективным алгоритмом сортировки, который служит систематическим методом для размещения элементов массива по порядку.
Характеристики
От Википедии: Алгоритм делит список ввода на две части: подэблиисты уже отсортированных элементов, который строится слева направо спереди (слева) списка, и сублисты предметов, оставшихся, которые остаются отсортированными, которые занимают остальную часть списка. Первоначально отсортированный сублист пуст, а несортированный сублист - это весь список ввода. Алгоритм продолжается, обнаружив самый маленький (или самый большой, в зависимости от порядка сортировки) в несортированном сублисте, обменивая (обмениваясь) его с помощью самого левого несортированного элемента (поместив его в сортированный порядок) и перемещая границы подсопателей вправо.
Характеристики
Из Википедии: ShellSort - это обобщение вставки, которая позволяет обменять элементы, которые находятся далеко друг от друга. Идея состоит в том, чтобы организовать список элементов так, чтобы, начиная где угодно, учитывая, что каждый n -й элемент давал отсортированный список. Такой список говорят, что он сортируется. Эквивалентно, это можно рассматривать как черновые списки H, каждый из которых сортируется индивидуально.
Характеристики
Сравнение сложности алгоритмов сортировки (сортировка пузырьков, вставка, сортировка выбора)
Графики сложности
Из Википедии: линейный поиск или последовательный поиск - это метод поиска целевого значения в списке. Он последовательно проверяет каждый элемент списка для целевого значения, пока не будет найдено совпадение или до тех пор, пока все элементы не будут найдены. Линейный поиск проходит в худшем линейном времени и проходит больше всего сравнений с N, где n - длина списка.
Характеристики
Из Википедии: двоичный поиск, также известный как полупроводник поиск или логарифмический поиск, представляет собой алгоритм поиска, который находит позицию целевого значения в отсортированном массиве. Он сравнивает целевое значение с средним элементом массива; Если они неравны, то половина, в которой цель не может лежать, исключается, и поиск продолжается на оставшейся половине, пока она не станет успешной.
Характеристики
Из Википедии: поиск прыжков или поиск блока относится к алгоритму поиска для упорядоченных списков. Он работает, сначала проверяя все элементы lkm, где { displaystyle k in mathbb {n}} k in mathbb {n}, а m - размер блока, пока элемент не будет найден, который больше, чем ключ поиска. Чтобы найти точную позицию ключа поиска в списке, линейный поиск выполняется на сублисте L [(K-1) M, KM].
Характеристики
В криптографии шифр Цезаря , также известный как шифр Цезаря, шифр сдвига, код Цезаря или сдвиг Цезаря, является одним из самых простых и широко известных методов шифрования.
Это тип замены шифра, в котором каждая буква в открытом виде заменяется буквой. Некоторое фиксированное количество позиций вниз по алфавиту. Например, с левой сдвигой 3, D будет заменен на a, E станет B, и так далее.
Метод назван в честь Юлия Цезаря , который использовал его в своей частной переписке.
Шаг шифрования, выполняемый шифром Цезаря, часто включается как часть более сложных схем, таких как шифр Vigenère, и все еще имеет современное применение в системе ROT13. Как и во всех шифрах замены с одним алфавитом, шифр Цезаря легко разбит и в современной практике не предлагает по существу безопасность коммуникации.
Сифер Vigenère - это метод шифрования алфавитного текста с использованием серии переплетенных шифров Цезаря на основе букв ключевого слова. Это форма полиалфабетической замены .
Сифер Vigenère был заново изобретен много раз. Первоначально этот метод был описан Джованом Баттистой Белласо в его книге 1553 года La Cifra Del. Подводной Джован Баттиста Белласо; Тем не менее, схема была позже внесена в заблуждение в Блейз де Вигенер в 19 -м веке и в настоящее время широко известна как «Вигенер -шифр».
Хотя шифр легко понять и реализовать, в течение трех веков он сопротивлялся всем попыткам сломать его; Это принесло ему описание Le Chiffre Indéchiffrable (французский для «Неисстановленного шифра»). Многие люди пытались реализовать схемы шифрования, которые по сути являются вигенесами. Фридрих Касиски был первым, кто опубликовал общий метод расшифровки шифра Vigenère в 1863 году.
В криптографии транспонированный шифр - это метод шифрования, с помощью которого позиции, занимаемые единицами открытого текста (которые обычно являются символами или группами символов), смещены в соответствии с обычной системой, так что зашифрованный текст представляет собой перестановку открытого текста. То есть порядок единиц изменен (открытый текст переупорядочен).
Математически биктивная функция используется в позициях символов для шифрования и обратной функции для расшифровки.
Алгоритм Luhn или формула Luhn, также известная как алгоритм «Modulus 10» или «Mod 10», представляет собой простую формулу контроля, используемая для проверки различных идентификационных номеров, таких как номера кредитных карт, номера IMEI, номера национальных провайдеров в Соединенных Штатах, канадских номеров социального страхования. Он был создан ученом IBM Хансом Питером Луном и описанным в патенте США № 2950 048, поданном 6 января 1954 года и предоставлена 23 августа 1960 года.