Algorithmen kapieren (eBook)

Visuell lernen und verstehen mit Illustrationen, Alltagsbeispielen und Python-Code
eBook Download: PDF
2018 | 1. Auflage
272 Seiten
MITP Verlags GmbH & Co. KG
978-3-95845-814-7 (ISBN)

Lese- und Medienproben

Algorithmen kapieren -  Aditya Y Bhargava
Systemvoraussetzungen
25,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
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.

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

Cover 1
Titel 4
Impressum 5
Inhaltsverzeichnis 6
Vorwort 12
Einleitung 14
Überblick 15
Verwendung dieses Buchs 16
Wer sollte dieses Buch lesen? 16
Konventionen und Downloads 17
Über den Autor 17
Danksagungen 18
Kapitel 1: Einführung in Algorithmen 20
1.1 Einführung 20
1.1.1 Performance 21
1.1.2 Problemlösungen 21
1.2 Binäre Suche 22
1.2.1 Eine bessere Suchmethode 24
Übungen 28
1.2.2 Laufzeit 29
1.3 Landau-Notation 30
1.3.1 Die Laufzeiten von Algorithmen nehmen unterschiedlich schnell zu 30
1.3.2 Visualisierung verschiedener Laufzeiten 33
1.3.3 Die Landau-Notation beschreibt die Laufzeit im Worst Case 34
1.3.4 Typische Laufzeiten gebräuchlicher Algorithmen 35
Übungen 36
1.3.5 Das Problem des Handlungsreisenden 37
1.4 Zusammenfassung 39
Kapitel 2: Selectionsort 40
2.1 Die Funktionsweise des Arbeitsspeichers 41
2.2 Arrays und verkettete Listen 43
2.2.1 Verkettete Listen 44
2.2.2 Arrays 45
2.2.3 Terminologie 46
Übung 47
2.2.4 Einfügen in der Mitte einer Liste 48
2.2.5 Löschen 49
Übungen 50
2.3 Selectionsort 52
Beispielcode 56
2.4 Zusammenfassung 57
Kapitel 3: Rekursion 58
3.1 Rekursion 59
3.2 Basisfall und Rekursionsfall 62
3.3 Der Stack 63
3.3.1 Der Aufruf-Stack 64
Übung 67
3.3.2 Der Aufruf-Stack mit Rekursion 67
Übung 71
3.4 Zusammenfassung 71
Kapitel 4: Quicksort 72
4.1 Teile und herrsche 73
Übungen 80
4.2 Quicksort 81
4.3 Landau-Notation im Detail 86
4.3.1 Mergesort und Quicksort im Vergleich 87
4.3.2 Average Case und Worst Case im Vergleich 89
Übungen 93
4.4 Zusammenfassung 93
Kapitel 5: Hashtabellen 94
5.1 Hashfunktionen 97
Übungen 100
5.2 Anwendungsfälle 101
5.2.1 Hashtabellen zum Nachschlagen verwenden 101
5.2.2 Doppelte Einträge verhindern 103
5.2.3 Hashtabellen als Cache verwenden 105
5.2.4 Zusammenfassung 108
5.2.5 Kollisionen 108
5.3 Performance 111
5.3.1 Der Auslastungsfaktor 113
5.3.2 Eine gute Hashfunktion 115
Übungen 115
5.4 Zusammenfassung 116
Kapitel 6: Breitensuche 118
6.1 Einführung in Graphen 119
6.2 Was ist ein Graph? 121
6.3 Breitensuche 122
6.3.1 Den kürzesten Pfad finden 125
6.3.2 Warteschlangen 127
Übungen 128
6.4 Implementierung des Graphen 128
6.5 Implementierung des Algorithmus 131
6.5.1 Laufzeit 136
Übung 136
6.6 Zusammenfassung 139
Kapitel 7: Der Dijkstra-Algorithmus 140
7.1 Anwendung des Dijkstra-Algorithmus 141
7.2 Terminologie 146
7.3 Eintauschen gegen ein Klavier 148
7.4 Negativ gewichtete Kanten 155
7.5 Implementierung 158
Übung 168
7.6 Zusammenfassung 169
Kapitel 8: Greedy-Algorithmen 170
8.1 Das Stundenplanproblem 170
8.2 Das Rucksackproblem 173
Übungen 175
8.3 Das Mengenüberdeckungsproblem 175
8.3.1 Approximationsalgorithmen 176
Übungen 182
8.4 NP-vollständige Probleme 182
8.5 Das Problem des Handlungsreisenden – Schritt für Schritt 184
8.5.1 Wie lassen sich NP-vollständige Probleme erkennen? 188
Übungen 190
8.6 Zusammenfassung 190
Kapitel 9: Dynamische Programmierung 192
9.1 Das Rucksackproblem 192
9.1.1 Die einfache Lösung 193
9.1.2 Dynamische Programmierung 194
9.2 Häufig gestellte Fragen zum Rucksackproblem 202
9.2.1 Was geschieht beim Hinzufügen eines Gegenstands? 202
Übung 205
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 Reiseplans 207
9.2.7 Handhabung voneinander abhängiger Objekte 209
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
Übung 210
9.3 Der längste gemeinsame Teilstring 211
9.3.1 Erstellen des Gitters 212
9.3.2 Befüllen des Gitters 213
9.3.3 Die Lösung 214
9.3.4 Die längste gemeinsame Teilfolge 215
9.3.5 Die längste gemeinsame Teilfolge – Lösung 217
Übung 218
9.4 Zusammenfassung 218
Kapitel 10: k-nächste Nachbarn 220
10.1 Klassifikation von Orangen und Grapefruits 220
10.2 Entwicklung eines Empfehlungssystems 222
10.2.1 Merkmalsextraktion 224
Übungen 228
10.2.2 Regression 228
10.2.3 Auswahl geeigneter Merkmale 231
Übung 231
10.3 Einführung in Machine Learning 232
10.3.1 OCR 232
10.3.2 Entwicklung eines Spamfilters 233
10.3.3 Vorhersage der Entwicklung des Aktienmarkts 234
10.4 Zusammenfassung 234
Kapitel 11: Die nächsten Schritte 236
11.1 Bäume 236
11.2 Invertierte Indizes 239
11.3 Die Fourier-Transformation 240
11.4 Nebenläufige Algorithmen 241
11.5 MapReduce 242
11.5.1 Warum sind verteilte Algorithmen nützlich? 242
11.5.2 Die map-Funktion 243
11.5.3 Die reduce-Funktion 243
11.6 Bloom-Filter und HyperLogLog 244
11.6.1 Bloom-Filter 246
11.6.2 HyperLogLog 246
11.7 Die SHA-Algorithmen 247
11.7.1 Dateien vergleichen 247
11.7.2 Passwörter überprüfen 248
11.8 Locality-Sensitive Hashing 249
11.9 Diffie-Hellman-Schlüsselaustausch 250
11.10 Lineare Programmierung 251
11.11 Epilog 252
Anhang: Lösungen zu den Übungen 254
Kapitel 1 254
Kapitel 2 255
Kapitel 3 258
Kapitel 4 259
Kapitel 5 260
Kapitel 6 261
Kapitel 7 263
Kapitel 8 264
Kapitel 9 265
Kapitel 10 266
Stichwortverzeichnis 268

Erscheint lt. Verlag 28.11.2018
Reihe/Serie mitp Professional
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik
Schlagworte Datenstrukturen • Informatik • Programmierung • Studenten • Studium • Universität • Vorlesung
ISBN-10 3-95845-814-9 / 3958458149
ISBN-13 978-3-95845-814-7 / 9783958458147
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
PDFPDF (Ohne DRM)
Größe: 44,7 MB

Digital Rights Management: ohne DRM
Dieses eBook enthält kein DRM oder Kopier­schutz. Eine Weiter­gabe an Dritte ist jedoch rechtlich nicht zulässig, weil Sie beim Kauf nur die Rechte an der persön­lichen Nutzung erwerben.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
69,99
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
69,99