1. Erste Einführung in Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen sind ein Sprungbrett auf dem Weg zum fortgeschrittenen Programmierer. Wenn Sie sich von der Anwendungsebene einer Sprache lösen und über deren Entwurfsebene nachdenken, haben Sie bereits begonnen, Datenstrukturen und Algorithmen zu verstehen.

Datenstruktur

Was ist eine Datenstruktur?
Es gibt keine offizielle einheitliche Erklärung der Definition einer Datenstruktur. In verschiedenen Enzyklopädien und Algorithmenbüchern gibt es unterschiedliche Möglichkeiten, zu beschreiben,
Fügen Sie hier eine Bildbeschreibung ein
warum eine Datenstruktur benötigt wird
. Gehen Sie von den folgenden drei Szenarien aus:

  1. Wenn Sie zu Hause ein Bücherregal haben
    , haben wir möglicherweise nicht viel mit der Platzierung und Organisation der Bücher zu tun. Wir müssen sie nur einfach in das Bücherregal stellen. Wenn wir es brauchen, können wir durch Scannen des Bücherregals finden, was wir suchen. Bücher.
  2. Sie verfügen über einen Buchladen, in dem Bücher aufbewahrt werden.
    In diesem Fall können wir die Bücher nicht wie im ersten Szenario zufällig platzieren. Wir können die Bücher alphabetisch nach ihren Namen ordnen. Wenn wir ein bestimmtes Buch finden müssen, können wir schnell nach den Buchstaben des Buches suchen.
  3. Sie verfügen über eine riesige Bibliothek an Büchern
    . In diesem Fall wäre es schwierig, sie einfach durch alphabetische Sortierung zu finden. Möglicherweise gibt es viele Bücher mit denselben Buchstabennamen. Zu diesem Zeitpunkt können wir sie nach Buchtyp klassifizieren und platzieren und dann die Buchstaben der Bücher nach jedem Typ platzieren.

Im obigen Szenario kann jedes Buch als Datenpunkt betrachtet werden, und unterschiedliche Platzierungsmethoden haben unterschiedliche Sucheffizienzen. Jede Platzierung kann als einfache Datenstruktur betrachtet werden. Die Suchmethode und der Suchprozess sind in der Implementierung des Algorithmus zu sehen.

Gängige Algorithmen
队列(Queue) ,
树(Tree),
堆(Heap),
数组(Array),
栈(Stack),
链表(Linked List),
图(Graph),
散列表(Hash)

Unterschiedliche Datenstrukturen weisen für unterschiedliche Vorgänge eine sehr unterschiedliche Leistung auf.
Manche lassen sich schnell durchsuchen, manche lassen sich schnell hinzufügen und löschen, manche erlauben keine Wiederholung von Elementen und wieder andere erlauben die Wiederholung von Elementen.

Denken Sie daran: Es gibt keine beste Datenstruktur, nur die am besten geeignete Datenstruktur!

Algorithmus

Was ist ein Algorithmus?

Der Algorithmus muss folgende Eigenschaften aufweisen:

  1. Gut definiert: Ein Algorithmus sollte eindeutige Ein- und Ausgaben sowie klare Rechenschritte haben, damit er in jeder Situation das richtige Ergebnis liefert.
  2. Endlichkeit: Der Algorithmus muss seine Operation innerhalb einer begrenzten Zeit abschließen und darf nicht in eine Endlosschleife fallen.
  3. Machbarkeit: Der Algorithmus sollte machbar sein, das heißt, er sollte auf bestehenden Computersystemen praktisch implementiert und ausgeführt werden können.
  4. Allgemeingültigkeit: Algorithmen sollten allgemein und auf die Lösung einer oder mehrerer Problemklassen anwendbar sein, nicht nur auf bestimmte Eingabeinstanzen.

Laienhaft ausgedrückt ist ein Algorithmus eine Reihe von Schritten zur Lösung eines Problems.

Vielleicht scheinen wir bei JavaScript kaum mit Datenstrukturen und Algorithmen vertraut zu sein, da wir die meiste Zeit API-Benutzer sind und uns nicht um die zugrunde liegende Implementierung kümmern.
Beispielsweise ist das Array, das wir häufig in JavaScript verwenden, eigentlich keine echte Array-Struktur, sondern eine Datenstruktur, die eine Hash-Liste imitiert. Wenn Sie die Datenstruktur nicht verstehen, werden Sie nie die Wahrheit erfahren.

Nur wer die Wahrheit kennt, kann wahre Freiheit erlangen!
Viele Inhalte dieser Serie stammen aus dem Homepage-Video des Lehrers codewhy an Station B.

Guess you like

Origin blog.csdn.net/qq_44473483/article/details/134809253