工具介绍
JavaScript Algorithmen und Datenstrukturen
Großbritannien wird von der russischen Armee angegriffen. Zivilisten werden getötet. WOHNUNGSGEBIETE SIND BUMBEDINGT.
> - Helfen Sie der Ukraine über:
> Serhiy Prytula Charity Foundation
Come Back Alive Charity Foundation
> - Nationalbank der Ukraine
> - Mehr Infos auf war.ukraine.ua und MFA der Ukraine
<hr/>
Dieses Repository enthält JavaScript-basierte Beispiele von vielen
beliebte Algorithmen und Datenstrukturen.
Jeder Algorithmus und jede Datenstruktur hat ihre eigene README
mit verwandten Erklärungen und Links zum weiteren Lesen (einschließlich solcher)
auf YouTube Videos.
Lesen Sie dies in anderen Sprachen:
简体中я ,
繁體中я ,
в��ϵ�어 ,
日本語 ,
Polski ,
Français ,
Español ,
Português
Русский ,
Türkçe
Italiano ,
Bahasa Indonesia
Укращнська ,
Arabisch ,
Tiếng Việt
Deutsch ,
Uzbek
עברית
Datenstrukturen
Eine Datenstruktur ist eine besondere Art, Daten in einem Computer zu organisieren und zu speichern, so dass sie
auf sie zugegriffen und effizient geändert werden. Genauer gesagt ist eine Datenstruktur eine Sammlung von Daten
Werte, die Beziehungen zwischen ihnen und die Funktionen oder Operationen, die angewendet werden können
die Daten.
Denken Sie daran, dass jede Daten ihre eigenen Kompromisse hat. Und Sie müssen mehr darauf achten, warum Sie eine bestimmte Datenstruktur auswählen, als darauf, wie Sie sie implementieren.
`B` - Anfänger, `A` - Fortgeschrittene
* `B` Linked List
* `B` Doubly Linked List
* `B` Schlange
„B Stack
`B` Deque - Doppelte Schlange
* `B` Hash Tabelle
`B` Heap - Max und Min Heap Versionen
* `B` Prioritätswarteschlange
„A Trie
"A" Baum
„A Binary Search Tree
„A AVL Tree
Ein rot-schwarzer Baum
* `A` Segment Tree - mit min/max/sum range queries Beispiele
"A" Fenwick Tree (Binary Indexed Tree)
* `A` Graph (sowohl gerichtet als auch ungerichtet)
* `A` Disjoint Set - eine Union-Suche-Datenstruktur oder Merge-Suche-Set
„A Bloom Filter
`A` LRU Cache - Least recently used (LRU) Cache
Algorithmen
Ein Algorithmus ist eine eindeutige Spezifikation, wie man eine Klasse von Problemen löst. Es ist
eine Reihe von Regeln, die eine Abfolge von Operationen genau definieren.
`B` - Anfänger, `A` - Fortgeschrittene
Algorithmen nach Thema
***Math ***
* `B` Bit Manipulation - Set / Get / Update / Clear Bits, Multiplikation / Division durch zwei, machen negativ usw.
* `B` Binary Floating Point - binäre Darstellung der Gleitkommazahlen.
* `B` Factorial
* `B` Fibonacci Nummer - klassische und geschlossene Versionen
"B" Primfaktoren - Primfaktoren finden und mit Hardy-Ramanujans Theorem zählen
* `B` Primalität Test (Testteilungsmethode)
`B`-Euklidischer Algorithmus - Berechnen Sie den Greatest Common Divisor (GCD)
"B" Least Common Multiple (LCM)
* `B` Sieb von Eratosthenes - Finden aller Primzahlen bis zu einem gegebenen Limit
* `B` Is Power of Two - überprüfen Sie, ob die Zahl die Potenz von zwei ist (naive und bitweise Algorithmen)
"B" Pascals Dreieck
Komplexe Zahl - Komplexe Zahlen und grundlegende Operationen mit ihnen
`B` Radian & Degree - Radiant zum Grad und Rückwärtskonvertierung
„B Fast Powering
* `B` Horners Methode - Polynomauswertung
* `B` Matrizen - Matrizen und grundlegende Matrixoperationen (Multiplikation, Transposition usw.)
`B` euklidische Distanz - Abstand zwischen zwei Punkten / Vektoren / Matrizen
„A integrale Partition
"A" Square Root - Newtons Methode
`A` Liu Hui π Algorithmus - ungefähre π-Berechnungen basierend auf N-gons
`A` Diskrete Fourier-Transformation - Zerlegen einer Funktion der Zeit (ein Signal) in die Frequenzen, die es bilden
***Sets**
* `B` Cartesian Product - Produkt mehrerer Sets
'B' Fisher-Yates Shuffle - zufällige Permutation einer endlichen Sequenz
* `A` Power Set - alle Teilmengen eines Sets (bitweise, Backtracking und Cascading-Lösungen)
`A` Permutationen (mit und ohne Wiederholungen)
`A` Kombinationen (mit und ohne Wiederholungen)
"A" Longest Common Subsequence (LCS)
`A` Längste wachsende Folge
Eine kürzeste gemeinsame Supersequenz (SCS)
* `A` Knapsack Problem - "0/1" und "Ungebunden"
`A` Maximum Subarray - "Brute Force" und "Dynamic Programming" (Kadanes) Versionen
* `A` Kombinationssumme - finden Sie alle Kombinationen, die eine spezifische Summe bilden
* **Strings**
* `B` Hamming Distanz - Anzahl der Positionen, an denen die Symbole unterschiedlich sind
* `B` Palindrome - Überprüfen Sie, ob der String umgekehrt gleich ist
`A` Levenshtein Distanz - minimaler Bearbeitungsabstand zwischen zwei Sequenzen
`A` Knuth-Morris-Pratt Algorithmus (KMP Algorithmus) - Substring-Suche (Muster-Matching)
* `A` Z Algorithmus - Substring-Suche (p)