Algorithmen in Java

Das Buch zum Programmieren trainieren. 32 Klassiker der Informatik, von Rucksackproblem bis Neuronale Netze

(Autor)

Buch | Softcover
333 Seiten
2021 | 1. Auflage
Rheinwerk (Verlag)
978-3-8362-8452-3 (ISBN)

Lese- und Medienproben

Algorithmen in Java - David Kopec
29,90 inkl. MwSt
  • Das Java-Training mit beliebten Klassikern und modernen Algorithmen
  • Ideal für Studium, Coding-Katas und Workouts
  • Backtracking, Acht-Damen-Problem, genetische Algorithmen u. v. m.
  • Titel der amerikanischen Originalausgabe: Classic Computer Science Problems in Java

Java programmieren trainieren!

Programmieren will trainiert werden, und Algorithmen gehören zum Rüstzeug hinzu. Schlagen Sie zwei Fliegen mit einer Klappe und verbessern Sie Ihre Java-Skills anhand klassischer Algorithmen von der Suche im Binärbaum über k-Means bis zum Rucksackproblem.

Dieses Buch ist Grundausbildung und Fundgrube für Coding Workouts zugleich. Profitieren Sie von der Lehr- und Praxiserfahrung des Autors: David Kopec hat solche Klassiker für Sie herausgesucht, die wichtige Lösungsstrategien zeigen und einen Trainigseffekt in der Programmierung versprechen. Ideal für alle, die ihre ersten Schritte mit Java hinter sich haben und jetzt voll durchstarten wollen!

Didaktischer Aufbau
Sie beginnen mit kleinen Algorithmen, die klassische Aufgaben lösen: lineare Suche, binäre Suche, Rekursion – jede Technik ein Muss für Informatiker und eine gute Übung in Java und in algorithmischem Denken. Erst nach und nach werden die Aufgaben komplexer und kniffliger.

Zeitgemäße Auswahl
Freuen Sie sich neben den ganz großen Klassikern auch auf Algorithmen, die moderner KI-Technologie zugrunde liegen, z. B. genetische Algorithmen und neuronale Netze.

Lehrreich für die Praxis
David Kopec ist engagierter Dozent und ein Mann der Praxis. Er hat Beispiele und Techniken ausgesucht, die Ihnen einen konkreten Nutzen bringen. Best Practices zum Coden und Hinweise zu den Einsatzgebieten der Algorithmen machen das Buch zu einer wertvollen Hilfe.

Aus dem Inhalt:
Zum Einstieg: einfache Verschlüsselung, Fibonacci-Folge, Türme von Hanoi
Suchalgorithmen: DNS-Suche, Labyrinthe u.v.m.
Bedingungserfüllung: Wortsuchrätsel, Acht-Damen-Problem u.v.m.
Grafen und kürzeste Wege
k-Means-Clustering
Einfache neuronale Netze
Minimax: Tic-tac.toe, Vier gewinnt

David Kopec ist Hochschuldozent für Informatik und Innovation am Champlain College in Burlington, Vermont. Er ist der Autor von “Dart for Absolute Beginners” (Apress, 2014) und “Classic Computer Science Problems in Swift” (Manning, 2018).



Vorwort ... 13


Einleitung ... 15


1. Kleine Aufgaben ... 23


1.1 ... Die Fibonacci-Folge ... 23

1.2 ... Triviale Komprimierung ... 31

1.3 ... Unknackbare Verschlüsselung ... 36

1.4 ... Pi berechnen ... 40

1.5 ... Die Türme von Hanoi ... 42

1.6 ... Anwendungen im Alltag ... 46

1.7 ... Übungsaufgaben ... 47



2. Suchaufgaben ... 49


2.1 ... DNA-Suche ... 49

2.2 ... Labyrinthe lösen ... 59

2.3 ... Missionare und Kannibalen ... 82

2.4 ... Anwendungen im Alltag ... 89

2.5 ... Übungsaufgaben ... 89



3. Bedingungserfüllungsprobleme ... 91


3.1 ... Ein Framework für Bedingungserfüllungsprobleme schreiben ... 92

3.2 ... Die Landkarte Australiens einfärben ... 98

3.3 ... Das Acht-Damen-Problem ... 101

3.4 ... Wortsuche ... 104

3.5 ... SEND+MORE=MONEY ... 112

3.6 ... Leiterplatten-Layout ... 115

3.7 ... Bedingungserfüllungsproblem im Alltag ... 115

3.8 ... Übungsaufgaben ... 116



4. Graphenprobleme ... 117


4.1 ... Eine Landkarte als Graph ... 117

4.2 ... Ein Framework für Graphen schreiben ... 120

4.3 ... Den kürzesten Pfad finden ... 128

4.4 ... Die Kosten für den Aufbau des Netzwerks minimieren ... 131

4.5 ... Den kürzesten Pfad in einem gewichteten Graphen finden ... 143

4.6 ... Graphenprobleme im Alltag ... 150

4.7 ... Übungsaufgaben ... 151



5. Genetische Algorithmen ... 153


5.1 ... Biologischer Hintergrund ... 153

5.2 ... Ein generischer genetischer Algorithmus ... 155

5.3 ... Ein naiver Test ... 164

5.4 ... Wiedersehen mit SEND+MORE=MONEY ... 167

5.5 ... Listenkomprimierung optimieren ... 172

5.6 ... Kritik an genetischen Algorithmen ... 176

5.7 ... Genetische Algorithmen im Alltag ... 178

5.8 ... Übungsaufgaben ... 179



6. k-Means-Clustering ... 181


6.1 ... Vorbereitungen ... 182

6.2 ... Der k-Means-Clustering-Algorithmus ... 185

6.3 ... Gouverneure nach Alter und Längengrad clustern ... 193

6.4 ... Michael-Jackson-Alben nach Länge clustern ... 199

6.5 ... k-Means-Clustering-Probleme und -Erweiterungen ... 201

6.6 ... k-Means-Clustering im Alltag ... 202

6.7 ... Übungsaufgaben ... 203



7. Einfache neuronale Netzwerke ... 205


7.1 ... Biologische Grundlagen? ... 206

7.2 ... Künstliche neuronale Netzwerke ... 207

7.3 ... Vorbereitungen ... 215

7.4 ... Das Netzwerk aufbauen ... 218

7.5 ... Klassifikationsprobleme ... 227

7.6 ... Neuronale Netzwerke beschleunigen ... 238

7.7 ... Probleme und Erweiterungen neuronaler Netzwerke ... 239

7.8 ... Neuronale Netzwerke im Alltag ... 241

7.9 ... Übungsaufgaben ... 242



8. Adversarial Search ... 243


8.1 ... Grundkomponenten von Brettspielen ... 243

8.2 ... Tic Tac Toe ... 245

8.3 ... Vier gewinnt ... 260

8.4 ... Minimax-Verbesserungen über die Alpha-Beta-Suche hinaus ... 272

8.5 ... Adversarial Search im Alltag ... 273

8.6 ... Übungsaufgaben ... 274



9. Weitere Aufgaben ... 277


9.1 ... Das Rucksackproblem ... 277

9.2 ... Das Problem des Handlungsreisenden ... 284

9.3 ... Merkhilfen für Telefonnummern ... 292

9.4 ... Anwendungen im Alltag ... 296

9.5 ... Übungsaufgaben ... 297



Anhang ... 299


A ... Interview mit Brian Goetz 301 ... 299

B ... Glossar 317 ... 299

C ... Weiterführende Ressourcen 323 ... 299



Index ... 327

Erscheinungsdatum
Verlagsort Bonn
Sprache deutsch
Maße 172 x 230 mm
Einbandart kartoniert
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
Informatik Theorie / Studium Algorithmen
Schlagworte Algorithmen • Algorithmus • Buch Bücher Wissen lernen Kurse Seminare Tutorials Workshops Studium Beruf • Coding Kata • Informatik • Java • Neuronale Netze • Probleme Rätsel Aufgaben • Programmieren Programmierung • Programmier-Training • Training
ISBN-10 3-8362-8452-9 / 3836284529
ISBN-13 978-3-8362-8452-3 / 9783836284523
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich