Sie sind hier
E-Book

Algorithmen kapieren

Visuell lernen und verstehen mit Illustrationen, Alltagsbeispielen und Python-Code

AutorAditya Y Bhargava
Verlagmitp Verlags GmbH & Co. KG
Erscheinungsjahr2018
Seitenanzahl272 Seiten
ISBN9783958458147
FormatPDF
Kopierschutzkein Kopierschutz/DRM
GerätePC/MAC/eReader/Tablet
Preis25,99 EUR
Visuelle Erläuterungen mit über 400 erklärenden Bildern Mit anschaulichen Beispielen und zahlreichen Übungen Ausführlich kommentierter Beispielcode in Python Ab sofort sind Algorithmen nicht mehr langweilig und trocken! Mit diesem Buch wird es dir Spaß machen, dich mit Algorithmen zu beschäftigen, und es wird dir leichtfallen zu verstehen, wie diese funktionieren. Du erhältst eine anschauliche Einführung in Algorithmen und lernst visuell und praxisnah, wie du die wichtigsten Algorithmen für Aufgaben einsetzt, die dir bei der Programmierung täglich begegnen. Du beginnst mit einfachen Aufgaben wie Sortieren und Suchen. Mit diesen Grundlagen gerüstet kannst du auch schwierigere Aufgaben wie dynamische Programmierung oder Künstliche Intelligenz in Angriff nehmen. Der Autor erläutert die Funktionsweise der Algorithmen anhand ganz einfacher Beispiele. So verdeutlicht er z.B. den Unterschied zwischen Arrays und verketteten Listen anhand der Aufgabe, mehrere noch freie Plätze in einem Kinosaal zu finden. Solche Beispiele zeigen dir ganz anschaulich, wie und wofür du die jeweiligen Algorithmen effektiv einsetzen kannst. Zu allen Erläuterungen findest du anschauliche Bilder und Diagramme sowie ausführlich kommentierten Beispielcode in Python. Wenn du Algorithmen verstehen möchtest, ohne dich mit komplizierten seitenlangen Beweisen herumzuplagen, ist dieses Buch genau das richtige für dich. Aus dem Inhalt: Such-, Sortier- und Graphenalgorithmen Performance von Algorithmen analysieren (Landau-Notation) Arrays, verkettete Listen und Hashtabellen Rekursion und Stacks Quicksort und das Teile-und-herrsche-Verfahren Dijkstra-Algorithmus für die Ermittlung des kürzesten Pfads Approximationsalgorithmen und NP-vollständige Probleme Greedy-Algorithmen Dynamische Programmierung Klassifikation und Regression mit dem k-Nächste-Nachbarn-Algorithmus

Aditya Bhargava ist Softwareentwickler, der sich nicht nur mit Informatik, sondern auch mit bildender Kunst befasst. Er bloggt über Programmierung unter adit.io.

Kaufen Sie hier:

Horizontale Tabs

Inhaltsverzeichnis
Cover1
Titel4
Impressum5
Inhaltsverzeichnis6
Vorwort12
Einleitung14
Überblick15
Verwendung dieses Buchs16
Wer sollte dieses Buch lesen?16
Konventionen und Downloads17
Über den Autor17
Danksagungen18
Kapitel 1: Einführung in Algorithmen20
1.1 Einführung20
1.1.1 Performance21
1.1.2 Problemlösungen21
1.2 Binäre Suche22
1.2.1 Eine bessere Suchmethode24
Übungen28
1.2.2 Laufzeit29
1.3 Landau-Notation30
1.3.1 Die Laufzeiten von Algorithmen nehmen unterschiedlich schnell zu30
1.3.2 Visualisierung verschiedener Laufzeiten33
1.3.3 Die Landau-Notation beschreibt die Laufzeit im Worst Case34
1.3.4 Typische Laufzeiten gebräuchlicher Algorithmen35
Übungen36
1.3.5 Das Problem des Handlungsreisenden37
1.4 Zusammenfassung39
Kapitel 2: Selectionsort40
2.1 Die Funktionsweise des Arbeitsspeichers41
2.2 Arrays und verkettete Listen43
2.2.1 Verkettete Listen44
2.2.2 Arrays45
2.2.3 Terminologie46
Übung47
2.2.4 Einfügen in der Mitte einer Liste48
2.2.5 Löschen49
Übungen50
2.3 Selectionsort52
Beispielcode56
2.4 Zusammenfassung57
Kapitel 3: Rekursion58
3.1 Rekursion59
3.2 Basisfall und Rekursionsfall62
3.3 Der Stack63
3.3.1 Der Aufruf-Stack64
Übung67
3.3.2 Der Aufruf-Stack mit Rekursion67
Übung71
3.4 Zusammenfassung71
Kapitel 4: Quicksort72
4.1 Teile und herrsche73
Übungen80
4.2 Quicksort81
4.3 Landau-Notation im Detail86
4.3.1 Mergesort und Quicksort im Vergleich87
4.3.2 Average Case und Worst Case im Vergleich89
Übungen93
4.4 Zusammenfassung93
Kapitel 5: Hashtabellen94
5.1 Hashfunktionen97
Übungen100
5.2 Anwendungsfälle101
5.2.1 Hashtabellen zum Nachschlagen verwenden101
5.2.2 Doppelte Einträge verhindern103
5.2.3 Hashtabellen als Cache verwenden105
5.2.4 Zusammenfassung108
5.2.5 Kollisionen108
5.3 Performance111
5.3.1 Der Auslastungsfaktor113
5.3.2 Eine gute Hashfunktion115
Übungen115
5.4 Zusammenfassung116
Kapitel 6: Breitensuche118
6.1 Einführung in Graphen119
6.2 Was ist ein Graph?121
6.3 Breitensuche122
6.3.1 Den kürzesten Pfad finden125
6.3.2 Warteschlangen127
Übungen128
6.4 Implementierung des Graphen128
6.5 Implementierung des Algorithmus131
6.5.1 Laufzeit136
Übung136
6.6 Zusammenfassung139
Kapitel 7: Der Dijkstra-Algorithmus140
7.1 Anwendung des Dijkstra-Algorithmus141
7.2 Terminologie146
7.3 Eintauschen gegen ein Klavier148
7.4 Negativ gewichtete Kanten155
7.5 Implementierung158
Übung168
7.6 Zusammenfassung169
Kapitel 8: Greedy-Algorithmen170
8.1 Das Stundenplanproblem170
8.2 Das Rucksackproblem173
Übungen175
8.3 Das Mengenüberdeckungsproblem175
8.3.1 Approximationsalgorithmen176
Übungen182
8.4 NP-vollständige Probleme182
8.5 Das Problem des Handlungsreisenden – Schritt für Schritt184
8.5.1 Wie lassen sich NP-vollständige Probleme erkennen?188
Übungen190
8.6 Zusammenfassung190
Kapitel 9: Dynamische Programmierung192
9.1 Das Rucksackproblem192
9.1.1 Die einfache Lösung193
9.1.2 Dynamische Programmierung194
9.2 Häufig gestellte Fragen zum Rucksackproblem202
9.2.1 Was geschieht beim Hinzufügen eines Gegenstands?202
Übung205
9.2.2 Was geschieht, wenn die Reihenfolge der Zeilen geändert wird?205
9.2.3 Kann man das Gitter auch spaltenweise (statt zeilenweise) befüllen?206
9.2.4 Was geschieht, wenn man ein leichteres Objekt hinzufügt?206
9.2.5 Kann man Teile eines Gegenstands stehlen?207
9.2.6 Optimierung des Reiseplans207
9.2.7 Handhabung voneinander abhängiger Objekte209
9.2.8 Ist es möglich, dass die Lösung mehr als zwei Teil-Rucksäcke erfordert?210
9.2.9 Ist es möglich, dass die beste Lösung den Rucksack nicht vollständig füllt?210
Übung210
9.3 Der längste gemeinsame Teilstring211
9.3.1 Erstellen des Gitters212
9.3.2 Befüllen des Gitters213
9.3.3 Die Lösung214
9.3.4 Die längste gemeinsame Teilfolge215
9.3.5 Die längste gemeinsame Teilfolge – Lösung217
Übung218
9.4 Zusammenfassung218
Kapitel 10: k-nächste Nachbarn220
10.1 Klassifikation von Orangen und Grapefruits220
10.2 Entwicklung eines Empfehlungssystems222
10.2.1 Merkmalsextraktion224
Übungen228
10.2.2 Regression228
10.2.3 Auswahl geeigneter Merkmale231
Übung231
10.3 Einführung in Machine Learning232
10.3.1 OCR232
10.3.2 Entwicklung eines Spamfilters233
10.3.3 Vorhersage der Entwicklung des Aktienmarkts234
10.4 Zusammenfassung234
Kapitel 11: Die nächsten Schritte236
11.1 Bäume236
11.2 Invertierte Indizes239
11.3 Die Fourier-Transformation240
11.4 Nebenläufige Algorithmen241
11.5 MapReduce242
11.5.1 Warum sind verteilte Algorithmen nützlich?242
11.5.2 Die map-Funktion243
11.5.3 Die reduce-Funktion243
11.6 Bloom-Filter und HyperLogLog244
11.6.1 Bloom-Filter246
11.6.2 HyperLogLog246
11.7 Die SHA-Algorithmen247
11.7.1 Dateien vergleichen247
11.7.2 Passwörter überprüfen248
11.8 Locality-Sensitive Hashing249
11.9 Diffie-Hellman-Schlüsselaustausch250
11.10 Lineare Programmierung251
11.11 Epilog252
Anhang: Lösungen zu den Übungen254
Kapitel 1254
Kapitel 2255
Kapitel 3258
Kapitel 4259
Kapitel 5260
Kapitel 6261
Kapitel 7263
Kapitel 8264
Kapitel 9265
Kapitel 10266
Stichwortverzeichnis268

Weitere E-Books zum Thema: Informatik - Algorithmen - Softwaresysteme

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Weitere Zeitschriften

küche + raum

küche + raum

Internationale Fachzeitschrift für Küchenforschung und Küchenplanung. Mit Fachinformationen für Küchenfachhändler, -spezialisten und -planer in Küchenstudios, Möbelfachgeschäften und den ...

Evangelische Theologie

Evangelische Theologie

Über »Evangelische Theologie« In interdisziplinären Themenheften gibt die Evangelische Theologie entscheidende Impulse, die komplexe Einheit der Theologie wahrzunehmen. Neben den Themenheften ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...