Algorithmen und Datenstrukturen in C# (.NET)
Algorithmen und Datenstrukturen in C# (.NET)
Zusammenfassung:
Das Buch „Algorithmen und Datenstrukturen in C# (.NET)“ ist ein umfassender praktischer Leitfaden, der Entwicklern aller Niveaustufen hilft, grundlegende und fortgeschrittene Konzepte zur Erstellung effizienten Codes zu meistern. Im Gegensatz zu abstrakten Lehrbüchern konzentriert sich das Material auf reale Aufgaben, mit denen C#-Entwickler im täglichen Arbeitsalltag konfrontiert werden: von der Verarbeitung von Sammlungen bis zur Optimierung der Leistung von Serveranwendungen auf der .NET-Plattform.
Worum geht es in diesem Buch
Das Buch deckt das gesamte Spektrum an Themen ab, die für ein sicheres algorithmisches Denken erforderlich sind:
- Grundlagen der Komplexitätsanalyse: Big O, Omega- und Theta-Notation; wie man die Leistung von Algorithmen bewertet, bevor man Code schreibt.
- Klassische Datenstrukturen: Arrays, Listen, Stapel, Warteschlangen, Hashtabellen, Bäume (BST, AVL, Rot-Schwarz-Bäume) und Graphen – mit Implementierungsbeispielen in C#.
- Sortier- und Suchalgorithmen: Quicksort, Mergesort, binäre Suche, Interpolationssuche und deren Anpassung an .NET.
- Arbeit mit LINQ und Sammlungen: Wie integrierte Datenstrukturen (List, Dictionary, HashSet, SortedSet) Algorithmen unter der Haube nutzen.
- Dynamische Programmierung und Greedy-Algorithmen: Lösung klassischer Probleme (Rucksackproblem, kürzester Pfad, Problem des Handlungsreisenden).
- Moderne Funktionen von C# 12+ und .NET 8+: Span
, Memory , indizierte Sammlungen, Records für unveränderliche Datenstrukturen.
Für wen ist dieses Buch geeignet
Die Veröffentlichung ist nützlich für:
- Junior- und Middle-Entwickler, die ihr Wissen systematisieren und lernen möchten, schnellen, vorhersagbaren Code zu schreiben.
- Studenten und Absolventen, die Informatik studieren und die Theorie im .NET-Ökosystem praktisch anwenden möchten.
- Senior-Ingenieure, die ein Nachschlagewerk für nicht-triviale Anwendungsszenarien von Datenstrukturen und Algorithmen in hochbelasteten Systemen benötigen.
- Technische Interviewer und diejenigen, die sich auf Vorstellungsgespräche in großen IT-Unternehmen vorbereiten (das Buch behandelt typische Aufgaben aus echten Interviews).
Was Sie lernen werden
- Wie Sie die Datenstruktur für eine bestimmte Aufgabe auswählen, um vorzeitige Optimierung zu vermeiden.
- Wie Sie einen eigenen Iterator, einen Cache mit LRU-Richtlinie oder eine Prioritätswarteschlange ohne externe Bibliotheken implementieren.
- Wie Sie asynchrone Algorithmen (Parallel LINQ, Task-basierte Ansätze) nutzen, um die Verarbeitung großer Datenmengen zu beschleunigen.
- Wie Sie Algorithmen mit BenchmarkDotNet testen und benchmarken.
- Wie Sie typische Speicherfehler und GC-Druck bei der Arbeit mit Sammlungen vermeiden.
Jedes Kapitel enthält praktische Beispiele, die sofort in Projekten einsetzbar sind, sowie Übungen zur Vertiefung des Materials. Der Code ist zum Download verfügbar und wurde unter .NET 8 und Visual Studio 2022 getestet.
Igor Semjonow ist Softwarearchitekt mit 10 Jahren Erfahrung in der C#-Entwicklung. Er war an der Erstellung hochbelasteter Finanzsysteme und Cloud-Dienste auf Azure beteiligt. Autor von Kursen über Algorithmen für Entwickler und ständiger Redner auf Fachkonferenzen.
Empfehlungen
Entwurfsmuster in Java. 23 bewährte Methoden zur Lösung typischer Aufgaben
JavaScript (Node.js) und Docker: Containerisierung von Anwendungen
Webentwicklung mit Swift (iOS/macOS): Von den Grundlagen bis zum Deployment
Entwurfsmuster in C# (.NET)
Go (Golang) und Microservices: Von der Idee bis zur Produktion
Einführung in die Programmierung mit Java