工具介绍
Algorithmes JavaScript et structures de données
> L'UKRAINE EST ATTAQUE PAR L'ARMÉE RUSSE. Les civils se font tuer. Les zones sont en train de s'écrouler.
> - Aider l'Ukraine par:
> - Fondation caritative Serhiy Prytula
> - Revenir en vie Fondation caritative
> - Banque nationale d'Ukraine
> - Plus d'infos sur war.ukraine.ua et MFA d'Ukraine
<h/>
Ce dépôt contient des exemples basés sur JavaScript de nombreux
algorithmes et structures de données populaires.
Chaque algorithme et chaque structure de données ont leur propre README
avec des explications connexes et des liens pour la lecture ultérieure (y compris
sur les vidéos YouTube).
Lire ceci dans d'autres langues :
(En milliers de dollars des États-Unis)
Les données suivantes sont disponibles:
(En milliers de dollars des États-Unis
日本語 ,
Polski,
Français
Español ,
Português ,
Русский ,
Türkçe ,
Italiano ,
Bahassa Indonésie ,
(En anglais seulement)
arabe,
Ti=ng Vi=t ,
Deutsch ,
Uzbek ,
- Oui.
Structures de données
Une structure de données est une façon particulière d'organiser et de stocker les données dans un ordinateur afin qu'il puisse
être accessibles et modifiés efficacement. Plus précisément, une structure de données est une collecte de données
valeurs, les relations entre elles, et les fonctions ou les opérations qui peuvent être appliquées à
les données.
Rappelez-vous que chaque donnée a ses propres compromis. Et vous devez prêter plus d'attention à la raison pour laquelle vous choisissez une certaine structure de données que pour la mettre en œuvre.
`B` - Débutant, `A` - Avancé
* Liste liée `B`
* `B` Liste doublement liée
* `B` Queue
* 'B ' Stack
* `B` Deque - queue double
* Tableau de bord `B`
* `B` Heap - versions max et min heap
* Demande prioritaire `B`
* 'A ' Trie
* Arbre `A`
* Arbre de recherche binaire `A`
* `A` Arbre AVL
* Arbre rouge-noir
* `A` Segment Tree - avec des exemples de requêtes min/max/sum
* Arbre `A` (arbre binaire indexé)
* Graphique `A` (à la fois dirigé et non dirigé)
* `A` Disjoint Set - une structure de données union-find ou fusion-find set
* `A` Filtre Bloom
* `A` LRU Cache - cache les moins utilisés (LRU)
Algorithmes
Un algorithme est une spécification sans ambiguïté de la façon de résoudre une classe de problèmes. C'est
un ensemble de règles qui définissent précisément une séquence d'opérations.
`B` - Débutant, `A` - Avancé
Algorithmes par thème
* **Math**
* `B` Bit Manipulation - set/get/update/clear bits, multiplication/division par deux, faire négatif, etc.
* `B` Point flottant binaire - représentation binaire des nombres de points flottants.
* "B"
* Numéro `B` Fibonacci - versions classiques et en format fermé
* `B` Facteurs primaires - trouver les facteurs principaux et les compter en utilisant le théorème de Hardy-Ramanujan
* `B` Primalité Essai (méthode de division d ' essai)
* `B` Algorithme euclidien - calculer le plus grand diviseur commun (GCD)
* `B` Multiple le moins fréquent (LCM)
* `B` Sieve d'Eratosthenes - trouver tous les nombres premiers jusqu'à une limite donnée
* `B` est la puissance de deux - vérifier si le nombre est la puissance de deux (algorithmes naïfs et bitwise)
* Triangle de Pascal
* `B` Nombre complexe - nombres complexes et opérations de base avec eux
* `B` Radian & Degree - radians au degré et en arrière conversion
* `B` Fast Powering
* Méthode `B` Horner' - évaluation polynôme
* matrices `B` - matrices et opérations matricielles de base (multiplication, transposition, etc.)
* `B` Euclidean Distance - distance entre deux points/vecteurs/matrices
* 'A ' Partition entière
* `A` Square Root - Méthode de Newton
* `A` Liu Hui π Algorithme - calculs approximatifs π basés sur les N-gons
* `A` Discret Fourier Transform - décomposer une fonction de temps (un signal) dans les fréquences qui la composent
* **Tables**
* `B` Produit cartésien - produit de plusieurs ensembles
* `B` Fisher–Yates Shuffle - permutation aléatoire d'une séquence finie
* `A` Power Set - tous les sous-ensembles d'un ensemble (solutions bitwise, backtracking et cascading)
* `A` Permutations (avec et sans répétitions)
* Combinaisons `A` (avec et sans répétitions)
* `A` subséquence la plus longue commune (LCS)
* La plus longue séquence augmente
* `A` Superséquence commune la plus courte (SCS)
* `A` Knapsack Problème - "0/1" et "Non lié"
* `A` Subarray maximum - "Force brute" et "Programmation dynamique" (Kadane) versions
* `A` Somme combinée - trouver toutes les combinaisons qui forment une somme spécifique
* **Pièces**
* `B` Distance de hamburgage - nombre de positions où les symboles sont différents
* `B` Palindrome - vérifier si la chaîne est la même dans l'inverse
* `A` Levenshtein Distance - distance minimale d'édition entre deux séquences
* `A` Knuth–Morris–Pratt Algorithm (KMP Algorithm) - recherche de sous-chaînes (correspondant)
* `A` Z Algorithme - sous-chaîne de recherche (p