In der Informatik werden die Konzepte, die Sie lernen, erst dann von Nutzen sein, wenn Sie sie zeigen. Das Problem ist ein Hauptanliegen, das gelöst werden muss, daher ist der Algorithmus eine kurze Planung, wie das Problem im Allgemeinen gelöst wird. Daher ist es in der Welt der Informatik von größter Bedeutung.
Ich denke, fast jeder Aspekt der Informatik braucht Algorithmen. Lassen Sie mich dies zeigen. Die folgende Liste würde verschiedene Bereiche der Informatik und die von ihnen verwendeten Algorithmen umfassen.
Automaten
Powerset-Aufbau. Algorithmus zur Umwandlung eines nicht deterministischen Automaten in einen deterministischen Automaten.
Todd-Coxeter-Algorithmus. Prozedur zum Erzeugen von Nebenmengen.
Künstliche Intelligenz
Alpha Beta. Alpha Max plus Beta Min. Weit verbreitet in Brettspielen.
Ant-Algorithmen. Die Ameisenkolonie-Optimierung ist eine Reihe von Algorithmen, die vom Verhalten der Ameisen inspiriert sind, um ein Problem zu lösen und den besten Weg zwischen zwei Orten zu finden.
DE (Differential Evolution). Lösen Sie das Chebyshev-Polynom-Anpassungsproblem.
Halbüberwachte Erkennung von sarkastischen Sätzen in Online-Produktbewertungen. Algortithmus, der Sakarsmen oder Ironie in einem Tweet oder einem Online-Dokument erkennt. Ein solcher Algorithmus wird auch für die Programmierung humanoider Roboter von wesentlicher Bedeutung sein.
Computer Vision
Inbegriff. Stellen Sie ein Bild oder Video durch ein kleineres dar.
Objekte in einem Bild zählen . Verwendet den Beschriftungsalgorithmus für verbundene Komponenten, um zuerst jedes Objekt zu beschriften und dann die Objekte zu zählen.
O'Carroll-Algorithmus. Ausgehend von einer mathematischen Umrechnung des Insektensehens bewertet dieser Algorithmus, wie Objekte umgangen werden können.
Genetische Algorythmen
Sie verwenden drei Operator. auswahl (lösung wählen), reproduktion (verwende gewählte lösungen, um andere zu konstruieren), ersatz (lösung ersetzen, wenn besser).
Fitness proportionale Auswahl. Diese Funktion wird auch als Roulette-Rad-Auswahl bezeichnet und dient zur Auswahl von Lösungen.
Auswahl der Kürzung. Eine andere Methode zur Auswahl von Lösungen, geordnet nach Fitness.
Turnierauswahl. Wählen Sie die beste Lösung für eine Art Turnier.
Stochastische Universalabtastung. Die Individuen werden auf zusammenhängende Segmente einer Linie abgebildet, so dass jedes Individuumsegment genauso groß ist wie seine Fitness, genau wie bei der Roulette-Rad-Auswahl.
Neuronale Netze
Hopfield-Netz. Wiederkehrendes künstliches neuronales Netzwerk, das als inhaltsadressierbare Speichersysteme mit binären Schwelleinheiten dient. Sie konvergieren zu einem stabilen Zustand.
Rückausbreitung. Betreute Lerntechnik zum Trainieren künstlicher neuronaler Netze.
Selbstorganisierende Karte (Kohonen-Karte). Neuronale Netze, die mit unbeaufsichtigtem Lernen trainiert wurden, um eine niedrigdimensionale (2D, 3D) Darstellung der Trainingsmuster zu erstellen. Gut zur Visualisierung von hochdimensionalen Daten.
Bioinformatik
Needleman-Wunsch. Führt ein globales Alignment an zwei Sequenzen für Protein- oder Nukleotidsequenzen durch.
Smith-Waterman. Variation des Needleman-Wunsch.
Kompression
Verlustfreie Kompressionsalgorithmen
Burrows-Wheeler verwandeln. Vorverarbeitung zur Verbesserung der verlustfreien Komprimierung.
Luft ablassen. Von ZIP verwendete Datenkomprimierung.
Delta-Codierung. Hilfe bei der Komprimierung von Daten, bei denen sequentielle Daten häufig vorkommen.
Inkrementelle Codierung. Delta-Codierung für Folgen von Zeichenfolgen.
LZW. (Lempel-Ziv-Welch). Nachfolger von LZ78. Erstellt aus den zu komprimierenden Daten eine Übersetzungstabelle. Wird vom GIF-Grafikformat verwendet.
LZ77 und 78. Die Basis weiterer LZ-Varianten (LZW, LZSS, ...). Sie sind beide Wörterbuch-Codierer.
LZMA. Abkürzung für Lempel-Ziv-Markov Chain-Algorithmus.
LZO. Datenkomprimierungsalgorithmus, der auf Geschwindigkeit ausgerichtet ist.
PPM(Vorhersage durch partielles Matching). Adaptive statistische Datenkompressionstechnik basierend auf Kontextmodellierung und Vorhersage. Shannon-Fano-Codierung. Konstruiert Präfixcodes basierend auf einer Reihe von Symbolen und deren Wahrscheinlichkeiten.
Binär abgeschnitten. Eine Entropiecodierung, die typischerweise für gleichmäßige Wahrscheinlichkeitsverteilungen mit einem endlichen Alphabet verwendet wird. Verbessere die binäre Kodierung.
Lauflängencodierung. Primäre Komprimierung, die eine Sequenz desselben Codes durch die Anzahl der Vorkommen ersetzt.
Sequitur. Inkrementelle Grammatikinferenz für eine Zeichenfolge.
EZW (Embedded Zerotree Wavelet). Progressive Codierung zum Komprimieren eines Bildes in einen Bitstrom mit zunehmender Genauigkeit. Kann auch bei besseren Ergebnissen verlustbehaftet sein.
Entropiecodierung Codierungsschema
, das Symbolen Codes zuweist, um die Codelängen mit den Wahrscheinlichkeiten der Symbole abzugleichen.
Huffman-Codierung. Einfache verlustfreie Komprimierung unter Ausnutzung der relativen Zeichenfrequenzen.
Adaptive Huffman-Codierung. Adaptive Codierungstechnik basierend auf Huffman-Codierung.
Arithmetische Codierung. Erweiterte Entropiecodierung.
Bereichskodierung. Wie arithmetische Codierung, jedoch etwas anders betrachtet.
Unäre Kodierung. Code, der eine Zahl n mit n Einsen gefolgt von einer Null darstellt. Elias Delta, Gamma, Omega-Codierung. Universeller Code, der die positiven ganzen Zahlen codiert. Fibonacci-Codierung. Universeller Code, der positive ganze Zahlen in binäre Codewörter codiert.
Golomb-Codierung. Form der Entropiecodierung, die für Alphabete nach geometrischen Verteilungen optimal ist.
Reis-Codierung. Form der Entropiecodierung, die für Alphabete nach geometrischen Verteilungen optimal ist.
Verlustbehaftete Kompressionsalgorithmen
Lineare Vorhersagekodierung. Verlustkomprimierung durch Darstellung der spektralen Hüllkurve eines digitalen Sprachsignals in komprimierter Form.
A-Law-Algorithmus. Standardkompandierungsalgorithmus.
Mu-Law-Algorithmus. Standardanalogsignalkomprimierungs- oder -kompandierungsalgorithmus.
Fraktale Kompression. Methode zum Komprimieren von Bildern mithilfe von Fraktalen.
Codierung transformieren. Art der Datenkomprimierung für Daten wie Audiosignale oder fotografische Bilder.
Vektorquantisierung. Technik, die häufig bei der verlustbehafteten Datenkomprimierung angewendet wird.
Wavelet-Kompression. Form der Datenkomprimierung, die sich gut für die Bild- und Audiokomprimierung eignet.
Kryptographie
Geheimschlüssel (symmetrische Verschlüsselung)
Verwenden Sie einen geheimen Schlüssel (oder ein Paar direkt verwandter Schlüssel) sowohl für die Entschlüsselung als auch für die Verschlüsselung.
Advanced Encryption Standard (AES) , auch bekannt als Rijndael.
Kugelfisch. Entworfen von Schneier als Allzweckalgorithmus, der als Ersatz für das alternde DE gedacht ist.
Data Encryption Standard (DES) , ehemals DE-Algorithmus.
IDEA (Internationaler Datenverschlüsselungsalgorithmus) . Früher IPES (Improved PES), ein weiterer Ersatz für DES. Wird von PGP (Pretty Good Privacy) verwendet. Führt mithilfe eines Schlüssels Transformationen für in Blöcke aufgeteilte Daten durch.
RC4 oder ARC4. In Protokollen wie SSL für den Internetverkehr und WEP für drahtlose Netzwerke häufig verwendete Stream-Verschlüsselung.
Winziger Verschlüsselungsalgorithmus. Einfach zu implementierender Algorithmus zur Blockverschlüsselung mit einigen Formeln.
PES (Vorgeschlagener Verschlüsselungsstandard). Älterer Name für IDEA.
Öffentlicher Schlüssel (asymmetrische Verschlüsselung)
Verwenden Sie ein Schlüsselpaar, das als öffentlicher und privater Schlüssel bezeichnet wird. Der öffentliche Schlüssel verschlüsselt die Nachricht, nur der private Schlüssel ermöglicht die Entschlüsselung.
DSA (Digital Signature Algorithm). Generieren Sie Schlüssel mit Primzahlen und Zufallszahlen. Wurde von US-Agenturen verwendet und ist nun gemeinfrei.
ElGamal. Basierend auf Diffie-Hellman, das von GNU Privacy Guard-Software, PGP und anderen kryptografischen Systemen verwendet wird.
RSA (Rivest, Shamir, Adleman). Weit verbreitet in E-Commerce-Protokollen. Verwenden Sie Primzahlen.
Diffie-Hellman (Merkle) Schlüsselaustausch (oder exponentieller Schlüsselaustausch). Methode und Algorithmus zur Weitergabe eines Geheimnisses über einen ungeschützten Kommunikationskanal. Wird von RSA verwendet.
NTRUEncrypt. Verwenden Sie Polynomringe mit Faltungsmultiplikationen.
Message Digest-Funktionen
Ein Message Digest ist ein Code, der sich aus der Verschlüsselung einer Zeichenfolge oder von Daten beliebiger Länge ergibt und von einer Hash-Funktion verarbeitet wird.
MD5. Dient zum Überprüfen von ISO-Images von CDs oder DVDs.
RIPEMD (RACE Integrity Primitives Evaluation Message Digest). Basierend auf den Prinzipien von MD4 und SHA-1 ähnlich.
SHA-1 (Sicherer Hash-Algorithmus 1). Am häufigsten verwendet aus dem SHA-Satz verwandter kryptografischer Hash-Funktionen. Wurde von der NSA-Agentur entworfen.
HMAC. Keyed-Hash-Nachrichtenauthentifizierung.
Tiger (TTH). Wird normalerweise in Tigerbaum-Hashes verwendet.
Kryptografie mit Pseudozufallszahlen
Siehe. Zufallszahlengeneratoren
Techniken in der Kryptographie
Geheime Freigabe, Geheime Aufteilung, Schlüsselaufteilung, M von N Algorithmen.
Shamirs geheimes Teilungsschema. Dies ist eine Formel, die auf Polynominterpolation basiert.
Blakleys geheimes Teilungsschema. Ist geometrischer Natur, ist das Geheimnis ein Punkt in einem m-dimensionalen Raum.
Andere Techniken und Entschlüsselung
Teilmenge Summe. Ist bei einer Menge von ganzen Zahlen eine Teilmenge gleich Null? Wird in der Kryptographie verwendet.
Shors Algorithmus. Quantenalgorithmus zum Entschlüsseln eines Codes basierend auf asymetrischen Funktionen wie RSA.
Geometrie
Geschenkpapier. Bestimmung der konvexen Hülle einer Punktmenge.
Gilbert-Johnson-Keerthi Entfernung. Bestimmen des kleinsten Abstands zwischen zwei konvexen Formen.
Graham scannt. Bestimmen der konvexen Hülle einer Reihe von Punkten in der Ebene.
Schnittpunkt der Liniensegmente. Ermitteln, ob sich Linien mit einem Sweep-Linien-Algorithmus schneiden.
Punkt im Polygon. Prüft, ob ein bestimmter Punkt in einem bestimmten liegt.
Ray / Plane Kreuzung.
* Schnittpunkt Linie / Dreieck. * Sonderfall Schnittpunkt Strahl / Ebene.
Polygonisierung impliziter Flächen. Annähern einer impliziten Fläche mit einer polygonalen Darstellung.
Triangulation.Methode zur Auswertung der Entfernung zu einem Punkt aus Winkeln zu anderen Punkten, deren Entfernung bekannt ist.
Diagramme
3D Surface Tracker-Technologie. Verfahren zum Hinzufügen von Bildern zu Wänden in einem Video, wobei verborgene Oberflächen berücksichtigt werden.
Bellman-Ford. Berechnet die kürzesten Pfade in einem gewichteten Diagramm (wobei einige der Kantengewichte negativ sein können).
Dijkstra's Algorithmus. Berechnet die kürzesten Pfade in einem Diagramm mit nicht negativen Kantengewichten.
Störungsmethoden. Ein Algorithmus, der lokal kürzeste Pfade in einem Diagramm berechnet.
Floyd-Warshall. Löst das Problem des kürzesten Pfades aller Paare in einem gewichteten, gerichteten Graphen.
Floyds Fahrradsuche. Findet Zyklen in Iterationen.
Johnson. Alle Paare kürzester Weg Algorithmus in dünn gewichteten gerichteten Graphen.
Kruskal.Findet einen minimalen Spannbaum für ein Diagramm.
Prim's. Findet einen minimalen Spannbaum für ein Diagramm. Wird auch als DJP-, Jarník- oder Prim-Jarník-Algorithmus bezeichnet.
* Boruvka. * Findet einen minimalen Spannbaum für einen Graphen.
Ford-Fulkerson. Berechnet den maximalen Durchfluss in einem Diagramm.
Edmonds-Karp. Implementierung von Ford-Fulkerson.
Nonblocking Minimal Spanning Switch. Für eine Telefonzentrale.
Woodhouse-Sharp. Findet einen minimalen Spannbaum für ein Diagramm.
Frühling basiert. Algorithmus zum Zeichnen von Graphen.
Ungarisch. Algorithmus zum Finden einer perfekten Übereinstimmung.
Färbealgorithmus. Graph Färbealgorithmus.
Nächster Nachbar.Finde den nächsten Nachbarn.
Topologische Sortierung. Sortieren Sie einen gerichteten azyklischen Graphen so, dass jeder Knoten vor allen Knoten steht, zu denen er Kanten hat (nach Richtungen).
Tarjans Offline-Algorithmus der am wenigsten verbreiteten Vorfahren. Berechnen Sie die niedrigsten gemeinsamen Vorfahren für Knotenpaare in einem Baum.
Grafik
Bresenhams Linienalgorithmus. Verwendet Entscheidungsvariablen, um eine gerade Linie zwischen zwei angegebenen Punkten zu zeichnen.
Landschaft Zeichnen Sie eine 3D-Landschaft.
* DDA-Linienalgorithmus. * Zeichnet mit Gleitkomma-Mathematik eine gerade Linie zwischen zwei angegebenen Punkten.
Fülle es. Füllt einen verbundenen Bereich mit einer Farbe.
Image-Wiederherstellung. Foto wiederherstellen, Bilder verbessern.
Xiaolin Wu Linienalgorithmus. Zeilen-Antialiasing.
Algorithmus des Malers. Erkennt sichtbare Teile einer dreidimensionalen Szenerie.
Ray-Tracing. Realistische Bildwiedergabe.
Phong-Schattierung. Ein Beleuchtungsmodell und eine Interpolationsmethode in der 3D-Computergrafik.
Gouraud-Schattierung.Simulieren Sie die unterschiedlichen Effekte von Licht und Farbe auf der Oberfläche eines 3D-Objekts.
Scanline-Rendering. Konstruiert ein Bild durch Verschieben einer imaginären Linie.
Globale Beleuchtung. Betrachtet direkte Beleuchtung und Reflexion von anderen Objekten.
Interpolation. Erstellen neuer Datenpunkte, z. B. im Digitalzoom.
Resynthesizer. Entfernen Sie ein Objekt auf einem Foto und erstellen Sie den von Photoshop und The Gimp verwendeten Hintergrund neu. Resynthesizer-Tutorial.
Slope-Intercept-Algorithmus. Es ist eine Implementierung der Steigungsschnittformel zum Zeichnen einer Linie.
Spline-Interpolation. Reduziert den Fehler beim Runge-Phänomen.
3D Surface Tracker-Technologie. Hinzufügen von Bildern oder Videos an Wänden in einem Video, wobei verborgene Oberflächen berücksichtigt werden.
Listen, Arrays und Bäume
Suchen
Wörterbuchsuche. Siehe vorausschauende Suche.
Auswahlalgorithmus. Findet das k-größte Element in einer Liste.
Binärer Suchalgorithmus. Sucht ein Element in einer sortierten Liste.
Breitensuche. Durchläuft einen Graphen Level für Level.
Tiefensuche. Durchläuft ein Diagramm Zweig für Zweig.
Best-First-Suche. Durchläuft ein Diagramm in der Reihenfolge der wahrscheinlichen Wichtigkeit unter Verwendung einer Prioritätswarteschlange.
Eine Baumsuche. * Sonderfall der Best-First-Suche, bei der Heuristiken verwendet werden, um die Geschwindigkeit zu verbessern.
Suche nach einheitlichen Kosten. Eine Baumsuche, die die Route mit den niedrigsten Kosten findet, bei der die Kosten variieren.
Vorausschauende Suche.Binär-ähnliche Suche, bei der die Größe des Suchbegriffs im Vergleich zu den hohen und niedrigen Werten bei der Suche berücksichtigt wird.
Hash-tabelle. Ordnen Sie Schlüssel Elementen in einer unsortierten Sammlung zu, um sie in einer linearen Zeit abzurufen.
Interpolierte Suche. Siehe vorausschauende Suche.
Sortierung
Binäre Baumsorte. Sortierung eines binären Baums, inkrementell, ähnlich der Sortierung beim Einfügen.
Bogosort. Ineffiziente zufällige Art einer Tischkarte.
Blase sortieren. Tauschen Sie die Elemente für jedes Indexpaar aus, wenn sie nicht in Ordnung sind.
Eimer sortieren. Teilen Sie eine Liste in Eimer auf und sortieren Sie sie einzeln. Verallgemeinert die Sortierung der Schubladen.
Cocktail Art (oder bidirektionale Blase, Shaker, Welligkeit, Shuttle, Happy Hour Art). Variation der Blasensortierung, die in beide Richtungen sortiert wird, durchläuft die Liste.
Kamm sortieren. Effiziente Variation der Blasensorte, die "Schildkröten" eliminiert, die kleinen Werte am Ende der Liste und Lücken zwischen den Werten nutzt.
Zählen sortieren.Es verwendet den Zahlenbereich in der Liste A, um ein Array B dieser Länge zu erstellen. Indizes in B werden verwendet, um zu zählen, wie viele Elemente in A einen Wert kleiner als i haben.
Gnome Art. Ähnlich wie beim Sortieren nach Einfügung, mit der Ausnahme, dass das Verschieben eines Elements an die richtige Stelle durch eine Reihe von Tauschvorgängen wie beim Sortieren nach Bläschen erfolgt.
Heapsort. Konvertieren Sie die Liste in einen Heap, entfernen Sie weiterhin das größte Element aus dem Heap und fügen Sie es am Ende der Liste hinzu.
Sortieren durch Einfügen. Bestimmen Sie, wo das aktuelle Element in der Liste der sortierten Elemente enthalten ist, und fügen Sie es dort ein.
Introsort. Oder nachdenkliche Art. Es beginnt mit Quicksort und wechselt ab einer bestimmten Rekursionsstufe zu Heapsort.
Zusammenführen, sortieren.Sortieren Sie die erste und zweite Hälfte der Liste getrennt und führen Sie die sortierten Listen zusammen.
Pfannkuchen sortieren. Kehren Sie Elemente eines Präfixes einer Sequenz um.
Pigeonhole Art. Füllen Sie ein leeres Array mit allen Elementen eines Arrays, die sortiert werden sollen, in der angegebenen Reihenfolge.
Briefträger sortieren. Hierarchische Variante der Eimersortierung, die von Postämtern verwendet wird.
Schnelle Sorte. Teilen Sie die Liste in zwei Teile, wobei alle Elemente der ersten Liste vor allen Elementen der zweiten Liste stehen .; Sortieren Sie dann die beiden Listen. Oft die Methode der Wahl.
Radix Art. Sortiert Schlüssel, die mit Elementen oder Ganzzahlen verknüpft sind, nach der Verarbeitung von Ziffern.
Auswahl sortieren. Wählen Sie das kleinste der verbleibenden Elemente aus und fügen Sie es am Ende der sortierten Liste hinzu.
Shell sortieren.Verbessert die Einfügesortierung durch Verwendung von Lücken zwischen Werten.
Smoothsort. Siehe Heapsort.
Stochastische Art. Siehe Bogosort.
und viele mehr...