JavaRush /Java-Blog /Random-DE /Buchrezension: „Java Data Structures and Algorithms“, Rob...

Buchrezension: „Java Data Structures and Algorithms“, Robert Laforet

Veröffentlicht in der Gruppe Random-DE
Die Stärke eines jeden Programmierers liegt in seinem Wissen. Ja, die Fähigkeit, gut zu googeln, steht auch nicht an letzter Stelle, dennoch muss ein gewisses Maß an Wissen vorhanden sein, auf dessen Grundlage die Denkweise des Entwicklers geformt wird. Je tiefer dieses Wissen ist, desto interessantere Lösungen kann ein Programmierer finden. Buchrezension: „Java Data Structures and Algorithms“, Robert Laforet - 1Zu den Bestandteilen einer solchen „Basis“ gehören Datenstrukturen und Algorithmen. Wie können Sie Ihr Wissen in diese Richtung erweitern? Suchen Sie sich alternativ ein Buch aus, dessen Wissen als sichere Reserve und Grundlage für weitere Studien dient. Für mich war ein solches Buch „Java Data Structures and Algorithms“ von Robert Laforet .Buchrezension: „Java Data Structures and Algorithms“, Robert Laforet - 2

Für wen

Die Zielgruppe dieses Buches kann ein sehr breiter Personenkreis sein, da es sowohl für diejenigen nützlich sein wird, die gerade die Syntax der Java- Sprache beherrschen , als auch für praktizierende Programmierer, die ein tieferes Verständnis der Merkmale von Datenstrukturen und Algorithmen erlangen möchten .

Worüber

Dieses Buch widmet sich dem Studium und der Verwendung von Datenstrukturen und Algorithmen in der Programmierung. Der Leser wird lernen, wie Datenstrukturen die Art und Weise bestimmen, wie Daten im Speicher organisiert werden, und wie Algorithmen verschiedene Operationen an diesen Strukturen durchführen. Lassen Sie uns etwas tiefer gehen und sehen, worum es in diesem Buch genau geht:
  1. Arrays. Einfüge-, Such- und Löschvorgänge in Arrays und geordneten Arrays werden ausführlich behandelt. Demonstriert die Funktionsweise der linearen und binären Suche nach geordneten und ungeordneten Arrays. Außerdem erfahren Sie, was O-Syntax ist.
  2. Sortierung. Es werden drei einfache Sortiermethoden betrachtet: „Bubble Sort“, „Selection Sort“, „Insertion Sort“. Aus dem Buch erfahren Sie, welches am langsamsten und welches am einfachsten ist.
  3. Stapel und Warteschlangen. Berücksichtigt werden Datenstrukturen wie Stack, Queue und Priority Queue, deren Wirksamkeit und Implementierung in Java.
  4. Verknüpfte Listen. Das Buch befasst sich mit doppelt verknüpften und doppelt verknüpften Listen, ihrer Effizienz und der Ausführung von Einfüge-, Such- und Löschvorgängen. Iteratoren und welche Methoden sie benötigen, werden ebenfalls behandelt.
  5. Rekursionen. Rekursionen werden in verschiedenen Situationen in Betracht gezogen, z. B. beim Berechnen von Dreieckszahlen und Fakultäten, beim Erstellen von Anagrammen, beim Durchführen einer rekursiven binären Suche, beim Lösen des Turm-von-Hanoi-Rätsels, beim Implementieren einer Zusammenführungssortierung und beim Lösen des Rucksackproblems.
  6. Nichttriviale Sortierungen. Es werden fortgeschrittenere Methoden berücksichtigt: Shell-Sortierung, Schnellsortierung und Radix-Sortierung, ihre Algorithmen und Effizienz.
  7. Binäre Bäume. Berücksichtigt werden ausgewogene binäre Suchbäume, ihre Funktionsweise, ihre Einfüge- und Löschoperationen, verschiedene Arten der Durchquerung, Suche nach Minimum und Maximum, Suche nach einem Nachfolger. Auch der Huffman-Code wird behandelt.
  8. Rote und schwarze Bäume. Wir betrachten eine der effektivsten Sorten ausgeglichener Bäume, deren Rotations- und Farbwechselvorgänge für den Ausgleich notwendig sind.
  9. Bäume 2-3-4. Bäume dieser Art werden als Beispiel für Multipath-Bäume beschrieben; ihre Funktionsweise und Beziehung zu B-Bäumen, die zur externen Datenspeicherung verwendet werden, wird diskutiert.
  10. Hash-Tabellen. Es werden Hashing und seine verschiedenen Methoden behandelt, wie z. B. lineares und quadratisches Sondieren, doppeltes Hashing und die Verkettungsmethode. Außerdem erfahren Sie, wie Sie mithilfe von Hashing die externe Dateispeicherung organisieren können.
  11. Pyramiden. Dies ist ein spezieller Baumtyp, der zur effizienten Implementierung von Prioritätswarteschlangen verwendet wird. Das Buch diskutiert die Wirkmechanismen des Einfügens, Löschens und Neuanordnens. Außerdem erfahren Sie, was Pyramidenpermutation ist und wie sie in Java implementiert werden kann.
  12. Grafiken. Es werden gewichtete und ungewichtete Graphen, Algorithmen zu deren Durchsuchung und Algorithmen zum Finden der kürzesten Durchquerungspfade vorgestellt.
Zur besseren Übersichtlichkeit stellt jedes Kapitel seine eigene Implementierung der betreffenden Datenstruktur bereit. Wenn es sich beispielsweise um eine einfach verknüpfte Liste handelt, wird ein Beispiel für eine Klasse angegeben, die die beschriebene Funktionalität implementiert. Das letzte Kapitel des Buches beginnt, aufbauend auf den Erkenntnissen der vorherigen Kapitel, das gesamte Wissen in einem einzigen Bild zusammenzufassen. So können Sie sich zum Beispiel eine klare Vorstellung davon machen, welche Datenstruktur Sie in welcher Situation verwenden sollten: Buchrezension: „Java Data Structures and Algorithms“, Robert Laforet - 3Am Ende jedes Kapitels finden Sie außerdem kleine Übungen. Bei einigen geht es darum, Dinge mit der Workshop- App zu erledigen , bei anderen erhalten Sie kleine Aufgaben direkt im Code.

Was sind Werkstatt-Apps?

Zur Demonstration dieser Strukturen und Algorithmen werden Workshop- Anwendungen eingesetzt . Anwendungen sind als Java-Applets konzipiert, die in einem Browser ausgeführt werden können. Workshop- Anwendungen erstellen grafische Diagramme, die zeigen, wie ein Algorithmus oder eine Datenstruktur funktioniert. Beispielsweise wird in einer Anwendung, die darauf ausgelegt ist, Spalten in aufsteigender Reihenfolge anzuzeigen, jedes Mal, wenn Sie auf eine Schaltfläche im Histogramm klicken, der nächste Schritt ausgeführt. In diesem Fall werden die Werte der an diesem Algorithmus beteiligten Variablen angezeigt, sodass Sie sehen können, wie der Code ausgeführt wird (erinnert an die Beschreibung eines Debuggers , oder?).

So laden Sie Workshop herunter und installieren es

  1. Sie können Applets hier herunterladen . Buchrezension: „Java Data Structures and Algorithms“, Robert Laforet - 4
  2. Klicken Sie auf WorkshopApplets.ZIP und laden Sie das Archiv mit den Applets herunter.
  3. Um Applets zu verstehen, können Sie dieses Thema und die Kommentare dazu lesen .

Vorteile des Buches

  • sehr gut lesbar, viele Beispiele werden quasi „an den Fingern“ erklärt;
  • öffnet Ihnen den Blick für viele „klassische“ Dinge, ohne den Einsatz komplexer mathematischer Formeln. Na ja, fast ohne sie :)
  • Obwohl die Beispiele in Java vorliegen, werden die im Code auftretenden Aktionen durch den folgenden Text und die Kommentare im Code ausführlich erklärt. Daher kann es von einem Benutzer jeder Programmiersprache gelesen werden, da die Codebeispiele recht einfach sind: Sie lesen sich fast wie Pseudocode.

Nachteile des Buches

  • Trotz der Erklärung „an den Fingern“ gibt es Lücken. Um die Array-Sortierung zu erklären, zeichnet der Autor ein Bild einer Fußballmannschaft, aber die Shell-Sortierung wird dort praktisch nicht beschrieben: Ich konnte sie nicht verstehen und habe im Internet darüber gelesen;
  • Es kann zu Tippfehlern kommen, meist in Bildern oder Tabellen;
  • Einige Codes sind ziemlich veraltet.

Analoga

Ich empfehle Analogien zu diesem Buch oder denen, die darauf folgen (für diejenigen, die weiter studieren möchten):
  • „Algorithmen in Java“ von Robert Sedgwick;
  • „Algorithmen: Konstruktion und Analyse“ von Thomas Cormen.

Endeffekt

Das Buch hat einige Nachteile und ist daher wirklich eine Lektüre wert. Es erklärt anschaulich viele grundlegende, grundlegende Themen, wie z. B. verschiedene Sortierungen, Arrays, Bäume, Sammlungen, Diagramme usw. Da das Buch nicht stark an Java gebunden ist , werden die durch das Studium gewonnenen Kenntnisse auch in anderen Programmiersprachen nützlich sein. Muss man haben, muss man lesen – wenn man Entwickler ist.Buchrezension: „Java Data Structures and Algorithms“, Robert Laforet - 6
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION