工具介绍
JavaScript алгоритмы и структуры данных
Украина захвачена российской армией. Гражданских убивают. ЖИДЕНТОВЫЕ ОРГАНИЗАЦИИ БОМБИРУЮТСЯ.
Помогите Украине через:
> Благотворительный фонд Сергея Притулы
Благотворительный фонд Come Back Alive
> - Национальный банк Украины
> - Больше информации на war.ukraine.ua и МИД Украины
<hr/>
Этот репозиторий содержит примеры на основе JavaScript многих
Популярные алгоритмы и структуры данных.
Каждый алгоритм и структура данных имеют свою собственную структуру.
с соответствующими пояснениями и ссылками для дальнейшего чтения (в том числе
Видео на YouTube.
Прочитайте это на других языках:
中 ,
中 ,
,
Польски,
Франсис,
Эспаньол,
Португуэс,
Русский ,
Тюркче,
Итальяно,
Бахаса Индонезия,
Украинка ,
Арабский,
Ti ng Việt ,
Дойч,
Узбек ,
{{item.group date}}
Структуры данных
Структура данных - это особый способ организации и хранения данных на компьютере, чтобы он мог
Доступ к ним и их эффективное изменение. Точнее, структура данных представляет собой набор данных.
ценности, отношения между ними и функции или операции, которые могут быть применены к
данные.
Помните, что каждая информация имеет свои собственные компромиссы. И вам нужно больше внимания уделять тому, почему вы выбираете определенную структуру данных, чем тому, как ее реализовать.
«B» — начинающий, «A» — продвинутый
* Связанный список "B"
«B» — двойной список
* Очередь "Б"
* 'B' Stack
* 'B' Deque - двойная очередь
«B» Hash Table
* 'B' Heap - макс и мин куча версий
• Приоритетная очередь
* 'A' Trie
* Дерево "А"
«Динарное дерево поиска»
«A» AVL Tree
«Красно-черное дерево»
* A' Segment Tree - с примерами запросов диапазона мин/макс/сумма
A Fenwick Tree (Бинарийное дерево)
A Graph (как направленный, так и ненаправленный)
* 'A' Disjoint Set - структура данных Union-find или набор слияний-find
Фильтр «A Bloom»
A LRU Cache - наименее используемый (LRU) кэш
Алгоритмы
Алгоритм является однозначной спецификацией того, как решать класс задач. Это
набор правил, точно определяющих последовательность операций.
«B» — начинающий, «A» — продвинутый
Алгоритмы по теме
** Математика**
* 'B' Bit Manipulation - установка/получение/обновление/очистка битов, умножение/разделение на два, создание отрицательных и т.д.
* 'B' Binary Floating Point - двоичное представление чисел с плавающей точкой.
* "B" Факторный
«B» Fibonacci Number — классические и закрытые версии
«B» Prime Factors — поиск простых факторов и их подсчет с использованием теоремы Харди-Рамануджана
"B" - первичность Метод пробного деления (Trial Division Method)
* 'B' Евклидов алгоритм - вычисление наибольшего общего делителя (GCD)
Наименее общее множество (LCM)
«B» Sieve of Eratosthenes — нахождение всех простых чисел до любого заданного предела
«B» — это мощность двух — проверьте, является ли число мощностью двух (наивные и битовые алгоритмы)
Треугольник Б Паскаля
Комплексное число B - комплексные числа и основные операции с ними
* 'B' Radian & Degree - радианы степени и обратного преобразования
«B» быстрая зарядка
Метод Б Хорнера - полиномиальная оценка
«B» матрицы — матрицы и основные матричные операции (умножение, транспозиция и т.д.)
"B" Евклидово расстояние - расстояние между двумя точками / векторами / матрицами
* "A" - целые разделы
Квадратный корень — метод Ньютона
* 'A' Liu Hui π Алгоритм - приблизительные вычисления π на основе N-гонов
Дискретное преобразование Фурье - разложение функции времени (сигнала) на частоты, которые его составляют
*** Сети**
"B" Декартовый продукт - продукт множественных наборов
* 'B' Фишер-Ятс Шаффл - случайная перестановка конечной последовательности
* 'A' Power Set - все подмножества набора (битовый, обратный и каскадный решения)
«А» перестановки (с повторениями и без них)
Комбинации (с повторениями и без них)
«Самая длинная общая последовательность» (LCS)
«Самая продолжительная возрастающая последовательность»
«Самая короткая общая последовательность» (SCS)
A' Knapsack Problem - "0/1" и "Unbound"
«A» Maximum Subarray — «Brute Force» и «Dynamic Programming»
Комбинированная сумма - найдите все комбинации, которые образуют конкретную сумму
** Струны**
«B» Хэмминг Дистанция — количество позиций, на которых символы различны
* 'B' Palindrome - проверьте, является ли строка одинаковой в обратном направлении
Расстояние A Levenshtein - минимальное расстояние редактирования между двумя последовательностями
*A' Knuth-Morris-Pratt Algorithm (KMP Algorithm) - поиск подстрок (совпадение шаблонов)
* 'A' Z Алгоритм - поиск подструн (p)