14.12.2023
Nicolas Descartes
Time Complexity verstehen
Autor: Bernhard Lauer
CodeProject.com
Software-Ingenieur Nicolas Descartes hat auf CodeProject einen Beitrag veröffentlicht, in dem er anhand von Beispielen das Problem der Zeitkomplexität von Algorithmen erklärt.
Das Ziel von Nicolas Descartes Artikel ist es, die Überlegenheit eines Algorithmus gegenüber einem anderen zu bestimmen, wenn zwei oder mehr Optionen zur Auswahl stehen. Dabei bemüht er sich um einfache Erklärungen, scheut aber auch die komplizierten Details nicht. Dabei stützt er sich auf diese Lehrbücher:
- Introduction to Algorithms (Cormen, Leiserson, Rivest, Stein)
- Algorithms (Sedgewick, Wayne)
- The Art of Computer Programming (Knuth)
Darum geht es: Hinter jeder Aufgabe, die einem Computer zugewiesen wird, steht jedoch eine Folge von Anweisungen, die in einer bestimmten Reihenfolge ausgeführt werden müssen. Innerhalb dieses Rahmens können Variationen in der Art und Weise auftreten, wie Anweisungen definiert werden, was die Erforschung von Methoden erforderlich macht, die effizienter sind als andere. Dann stellt sich die Frage: Wie kann man feststellen, dass eine Methode einer anderen überlegen ist? In Wirklichkeit gibt es auf diese Frage keine eindeutige Antwort, da der Begriff "überlegen" für jeden Einzelnen eine andere Bedeutung haben kann. Einige mögen argumentieren, dass eine Methode überlegen ist, wenn sie weniger Speicherplatz benötigt, was besonders für Geräte wichtig ist, bei denen die Speicherverwaltung kritisch ist, wie zum Beispiel bei Mikrocontrollern. Andere halten eine Methode für überlegen, wenn sie leicht zu verstehen und zu erklären ist. Descartes Beitrag definiert eine Methode als überlegen, wenn sie weniger Zeit zur Ausführung benötigt als andere.
Sein Ziel ist es also, unter mehreren Algorithmen diejenigen herauszufinden, die besser geeignet sind, früher beendet zu werden. Diese Analyse der Zeit, die ein Algorithmus für die Ausführung einer Aufgabe benötigt, wird als Zeitkomplexität bezeichnet und ist seit den Anfängen der Informatik von entscheidender Bedeutung.
Die weiteren Ausführungen und seine einfachen Beispiele finden Sie in diesem CodeProject-Beitrag von Nicolas Descartes.
VS Code Windows und Mac
Brauchbare Alternative
Das C# Dev Kit for Visual Studio Code könnte eine Alternative für Entwickler sein, die weiterhin macOS nutzen möchten. Unser Schwesterportal dotnetpro hat es auf den Prüfstand gestellt.
>>
Google I/O 2024
Google Gemini ermöglicht mehr Funktionen und Individualität
Der große Star bei der diesjährigen Google-Entwicklerkonferenz I/O war Gemini. Die KI-Technologie hält Einzug in diverse Anwendungen und bietet neue Möglichkeiten bei der Entwicklung und Nutzung bekannter und neuer Google-Apps.
>>
Konferenz
Microsoft Build vom 21. bis 23 Mai
Für die Build 2024 plant Microsoft ein umfangreiches Programm mit über 100 Sessions. Viele Neuigkeiten soll es geben - vor allem zum Thema Künstliche Intelligenz.
>>
Künstliche Intelligenz
OpenAI: „GPT-4o“ kann jetzt auch sprechen
Die Entwicklerfirma OpenAI hat das neue KI-Modell „GPT-4o“ vorgestellt. Dieses kann mit menschlicher Stimme mit Nutzern interagieren und auch zwischen verschiedenen Sprachen übersetzen.
>>