Linearer Algorithmus

Ein linearer Algorithmus ist ein Algorithmus, dessen Laufzeit linear in der Größe der Eingabe ist. Dies bedeutet, dass der Algorithmus für eine doppelt so große Eingabe in etwa doppelt so lange braucht. Man sagt auch: „Der Algorithmus ist in O(n)“.

Lineare Algorithmen werden in der Regel als sehr schnelle Algorithmen angesehen. Sie gehören der Klasse der polynomiellen Algorithmen an.

Beispiel

Für die Aufgabe, die größte Zahl aus einer Liste mit n Einträgen zu finden, gibt es einen linearen Algorithmus:

  1. Setze die erste Zahl der Liste als (vorläufiges) Maximum.
  2. Gehe jetzt die restlichen Zahlen der Reihe nach durch und überprüfe jedes Mal, ob …
    diese Zahl größer ist, als das bisherige Maximum.
    Wenn ja, dann ersetze das (vorläufige) Maximum durch diese Zahl.
  3. Der Algorithmus ist fertig, wenn die letzte Zahl überprüft wurde.

Die Größe der Eingabe ist hier die Anzahl der Zahlen in der Liste. Um die Laufzeit des Algorithmus zu berechnen, betrachtet man die Anweisungen der Reihe nach:

  • Die erste Anweisung dauert eine Zeiteinheit.
  • Danach kommt eine Schleife, die n-1 mal durchlaufen wird. In der Schleife werden ein oder zwei Anweisungen ausgeführt, damit bekommt man eine Laufzeit l zwischen n-1 und 2·(n-1) für die Schleife.
  • Nimmt man alles zusammen, so ist die Laufzeit c·(n), mit einer Konstanten c, die zwischen 1 und 2 liegt und die von der konkreten Eingabe abhängt. Um solche Abhängigkeiten zu vermeiden, benutzt man die sogenannten Landau-Symbole und schreibt hierfür kurz O(n).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.