www.wikidata.de-de.nina.az
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Die Effizienz eines Algorithmus ist seine Sparsamkeit bezuglich Ressourcen Rechenzeit und Speicherplatz die jener zur Losung eines festgelegten Problems beansprucht Jedoch sind effiziente Algorithmen meist schwerer zu verstehen da sie oft auf ausgeklugelten Ideen beruhen Effiziente Algorithmen sind schnell in der Losung des entsprechenden Problems Inhaltsverzeichnis 1 Effizienz von Algorithmen 1 1 Bewertungsgrossen fur die Effizienzbewertung von Algorithmen 1 1 1 Von Implementierung Hardware und Eingabedaten unabhangige Bewertungsgrossen 1 1 2 Die Landau Notation 1 1 3 Theorie trifft auf Praxis 1 2 Laufzeiteffizienz 1 3 Speichereffizienz 1 4 Effizienzbewertungsauswertung und beurteilung 2 LiteraturEffizienz von Algorithmen BearbeitenBewertungsgrossen fur die Effizienzbewertung von Algorithmen Bearbeiten Von Implementierung Hardware und Eingabedaten unabhangige Bewertungsgrossen Bearbeiten Effizienz ist nicht blosses Charakteristikum eines Algorithmus Die Effizienz wird vielmehr auch durch die konkrete Implementierung in der jeweiligen Programmiersprache des Weiteren durch die zugrundeliegende Hardware ebenso wie durch die Eingabedaten beeinflusst Deshalb zieht man fur die Effizienzbewertung von Algorithmen von Implementierung Hardware und Eingabedaten unabhangige Bewertungsgrossen heran Laufzeiteffizienz Bewertungsgrosse ist die Laufzeit eines Algorithmus auf Basis der benotigten Rechenschritte Speichereffizienz Bewertungsgrosse ist der Speicherbedarf durch VariablenDie Landau Notation Bearbeiten Hauptartikel Landau Notation Da die Anzahlen der benotigten Takte fur elementare Operationen fur unterschiedliche Chipsets auf den Main Boards von Rechnern variieren sich in der Regel voneinander aber nur um einen konstanten Faktor unterscheiden und ferner der Laufzeit und Platzbedarf fur kleine Eingaben in der Regel unerheblich ist nutzt man die sogenannte Landau Notation gelegentlich auch Omikron Kalkul genannt um die Effizienz eines Algorithmus uberschlagig zu ermitteln Dadurch ist das Laufzeitverhalten und der Platzbedarf unter Vernachlassigung eines konstanten Vorfaktors fur grosse Eingabegrossen darstellbar was jedoch uber eine Praxistauglichkeit des Algorithmus noch nichts aussagt da in der Praxis meistens mit relativ kleinen Eingabegrossen gearbeitet wird die Landau Notation jedoch sehr grosse Eingabegrossen betrachtet Theorie trifft auf Praxis Bearbeiten Der Begriff effizienter Algorithmus wird in der theoretischen Informatik recht schwammig benutzt Meist meint man damit einen Algorithmus dessen Laufzeit polynomial in der Grosse der Eingabe ist aber auch solche Algorithmen konnen praktisch unbrauchbar sein wenn beispielsweise der feste Exponent k displaystyle k nbsp des zugehorigen Polynoms n k displaystyle n k nbsp zu gross ist Es gibt sogar Linearzeit Algorithmen die praktisch unbrauchbar sind weil der konstante Vorfaktor c displaystyle c nbsp in der Darstellung c n displaystyle c cdot n nbsp zu gross ist Somit kann es sein dass obwohl ein Algorithmus A in der Theorie deutlich effizienter ist als ein Algorithmus B in der Praxis immer nur Algorithmus B verwendet wird weil die zu bearbeitenden Eingabegrossen nicht gross genug sind damit Algorithmus A seine Vorteile ausspielen kann Laufzeiteffizienz Bearbeiten In diesem Artikel oder Abschnitt fehlen noch wichtige Informationen Hilf der Wikipedia indem du sie recherchierst und einfugst Speichereffizienz Bearbeiten Die Menge belegten Speichers einer Datenstruktur muss immer im Verhaltnis zur Haufigkeit ihres Auftretens zur Laufzeit eines Programms bewertet werden Der Aufwand einer Optimierung ist haufig nur dann sinnvoll wenn viele Objekte des betrachteten Typs im Hauptspeicher angelegt bzw dauerhaft gespeichert werden In diesem Fall kann durch Reduzierung des Speicherverbrauchs eine Senkung der Kosten einerseits und eine Erhohung des Systemdurchsatzes andererseits erreicht werden Eine Reduzierung des Speicherverbrauchs von Objekten kann eine Verschlechterung der Ausfuhrungsdauer bestimmter Zugriffe auf die zugrundeliegende Datenstruktur haben namlich dann wenn Teilinformationen zusammengefasst werden um in Basistypen kompakt gespeichert zu werden Die Effizienz der eingefuhrten Kodierungsoperationen spielt hierbei eine Rolle Die relative Haufigkeit bestimmter Zugriffe in einem typischen Programmlauf muss beachtet werden um in der Summe optimal zu sein Die Operationen auf Daten werden in zwei Kategorien eingeteilt Lesen und Schreiben Diese entsprechen dem Dekodieren und Kodieren der Teilinformationen und mussen deshalb getrennt betrachtet werden Ein zusatzlicher Aspekt spielt durch das Modell des abstrakten Datentyps hinein die interne Reprasentation kann gegebenenfalls ohne Umwandlung in die Komponenten verarbeitet werden Ziel ist eine ausgewogene Losung zu finden die Vorteile auf einer Seite nicht mit Effizienzeinbussen auf der anderen Seite bezahlt Aufwand und Komplexitat mussen durch den erzielten Gewinn gerechtfertigt sein Im Zweifelsfall ist die klare Implementierung der trickreichen vorzuziehen Das heisst nicht nur unmittelbarer Ressourcenbedarf des einzelnen Algorithmus zur Laufzeit wird betrachtet sondern abhangig von den Anforderungen die Effizienz des gesamten Systems Ein weiteres Ziel ist die Vermeidung von Redundanz bei der Speicherung von Objektzustanden Es ist auch zu beachten dass Redundanz die Wartungsfreundlichkeit vermindert Allerdings kann gerade gezielt eingesetzte Redundanz bei bestimmten Anwendungen die Zugriffsgeschwindigkeit auf Daten deutlich erhohen Effizienzbewertungsauswertung und beurteilung Bearbeiten Ob ein Algorithmus nun als effizient gelten kann oder nicht hangt vor allem von der Perspektive ab aus der man den Algorithmus analysiert und was man uber die Komplexitat des vom Algorithmus behandelten Problems weiss Unter Umstanden kann es zu einer Grob Beurteilung bei der Effizienzbewertung kommen Worst Case der Algorithmus zeigt das schlechtestmogliche Verhalten zur Losung eines festgelegten Problems Average Case der Algorithmus zeigt ein durchschnittliches Verhalten zur Losung eines festgelegten Problems Best Case der Algorithmus zeigt das bestmogliche Verhalten zur Losung eines festgelegten ProblemsEntsprechende Kenntnisse zu Algorithmen und Komplexitat sind erforderlich um zu derartigen Grobbeurteilungen zu gelangen Literatur BearbeitenArmin P Barth Algorithmik fur Einsteiger Fur Studierende Lehrer und Schuler in den Fachern Mathematik und Informatik 2 uberarb Aufl Springer Spektrum Wiesbaden 2013 ISBN 978 3 658 02281 5 Kap 3 Effizienz von Algorithmen S 95 135 Volker Heun Grundlegende Algorithmen Einfuhrung in den Entwurf und die Analyse effizienter Algorithmen 2 verb u erw Aufl Vieweg Teubner Verl Wiesbaden 2003 ISBN 978 3 528 13140 1 Christian Wagenknecht Algorithmen und Komplexitat Fachbuchverl Leipzig im Carl Hanser Verl Munchen 2003 ISBN 3 446 22314 2 Ingo Wegener Komplexitatstheorie Grenzen der Effizienz von Algorithmen Springer Verl Berlin 2003 ISBN 3 540 00161 1 Abgerufen von https de wikipedia org w index php title Effizienz Informatik amp oldid 233116216