Skip to main content
  • 11k Accesses

Zusammenfassung

Für die Lösung jeder lösbaren Aufgabe gibt es eine unendliche Anzahl von (abstrakten und konkreten) Algorithmen. Das folgende Problem illustriert, dass eine Aufgabe einfach oder kompliziert, aber auch „schlechter“ oder „besser“ gelöst werden kann.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    const ist ein reserviertes Wort in Java, wird aber von den derzeitigen Compilern nicht ausgewertet.

  2. 2.

    Z. B. PC mit einem 500 MHz Pentium III-Prozessor unter MS-Windows NT Version 4.0 und dem jdk-Compiler, Version 2.1 (der bei der 2. Auflage schon als veraltet galt).

  3. 3.

    Mit den Laufvariablen von, bis und i.

  4. 4.

    Mathematiker sagen Matrix, Java-Programmierer sagen Tabelle.

  5. 5.

    Mit den Laufvariablen von und bis.

  6. 6.

    maxTeilsumme3 kommt mit konstantem Speicher aus, d. h. der verbrauchte Speicher wächst nicht mit n; seine Speicherkomplexität ist O(n 0) = O(1).

  7. 7.

    Italienischer Historiker und Stratege, 1469–1527.

  8. 8.

    landläufig: „überladene Funktionen“; jedoch nicht die Funktion, sondern ihr Name wird überladen.

  9. 9.

    Methoden sollten private vereinbart werden, wenn sie nur innerhalb der Klasse aufgerufen werden. In diesem Buch wurden die meisten Methoden „paketweit“ (d. h. ohne Zugriffschutz ) formuliert, außer wenn die Zugreifbarkeit „betont“ werden soll.

  10. 10.

    In wie vielen Schritten: Eine Folge der Länge 8 wird im 1. Schritt in zwei Folgen der Länge 4, im 2. Schritt in vier Folgen der Länge 2 und im 3. Schritt in acht Folgen der Länge 1 geteilt.

  11. 11.

    Wenn es nicht genau „aufgeht“: Eine Folge der Länge 37 kann in eine Folge der Länge 18 und eine Folge der Länge 19 aufgeteilt werden, die „ungefähr“ gleich lang sind.

  12. 12.

    Das Sprachelement Zählschleife (oder „verbesserte for-Schleife“) ab der Java Version 5 ermöglicht, alle Elemente aus einer Reihung in eine Variable hineinzulesen und sie im Schleifenrumpf zu verwenden.

  13. 13.

    „… program testing can be used very effectively to show the presence of bugs, but never to show their absence“ [EWD].

  14. 14.

    s. Unendlichkeitsbedingung im Abschn. 7.1.

  15. 15.

    s. alle gängigen Lehrbücher für Software Engineering.

  16. 16.

    O steht für Ordnung oder Größenordnung.

  17. 17.

    c ist eine Konstante ungleich 0.

  18. 18.

    Nach der Terminologie von [SolSch] Multibehälter . In der Java-Bibliothek gibt es ähnliche Sammlungsklassen (collection classes).

  19. 19.

    Auf Englisch: stack ; auch Keller genannt.

  20. 20.

    Abkürzung für last in first out.

  21. 21.

    Generische Klassen sind seit der Java Version 5 verwendbar. Der Typparameter E (wie Element) muss bei der Ausprägung (Instanziierung) der Klasse, ein beliebiger Referenztyp (Klasse, Schnittstelle oder Aufzählungstyp) eingesetzt werden.

  22. 22.

    Es wäre eleganter und konsistenter, new E[größe] schreiben zu können, aber Java 5 erlaubt keine generic array creation.

  23. 23.

    In manchen anderen Programmiersprachen (wie Pascal oder C) erst nach einer forward-Vereinbarung.

  24. 24.

    private static ist sinnvoll, wenn Knoten geschachtelt (z. B. innerhalb einer generischen Klasse Stapel oder Liste, wie auch die folgenden Methoden) vereinbart wird.

  25. 25.

    Der Parametertyp des Knotens wird aus dem Kontext (Typ von anker) vom Compiler seit der Version 7 ermittelt (inferiert ).

  26. 26.

    Die Richtung ist zeitlich gemeint: Jeder Knoten referenziert den dahinterliegenden Knoten, der vor ihm eingetragen wurde, also rückwärts.

  27. 27.

    Jeder Knoten referenziert den Knoten, der nach ihm eingetragen wurde: vorwärts.

  28. 28.

    Abkürzung für first in first out.

  29. 29.

    Es ist möglich, auch die vorwärts verkettete Liste mit nur einem Anker zu programmieren, indem älteste im letzten Knoten (jetzt immer null) gespeichert wird.

  30. 30.

    Eine alternative Technik ist, hierfür einen Pseudoknoten zu verwenden, wie im Abschn. 6.1.3.

  31. 31.

    public ist nicht sinnvoll, wenn die innere Klasse Knoten private ist.

  32. 32.

    Der Kommentar const (im Sinne von C++) wird verwendet, um anzudeuten, dass die Methode das Zielobjekt unverändert lässt.

  33. 33.

    Die Methoden entleeren und istLeer bilden zusammen eine Eigenschaft (im Sinne von C#) und müssen konsistent implementiert werden.

  34. 34.

    Nach der Terminologie von [SolSch] Mutatoren .

  35. 35.

    Nach der Terminologie von [SolSch] Informatoren : Funktionsmethoden, die in der Schnittstelle mit // const gekennzeichnet wurden.

  36. 36.

    Nur in Einzelfällen, und meistens nur schwer.

  37. 37.

    GRÖSSE ist der aktuelle Konstruktorparameter.

  38. 38.

    Auf Englisch: heap ; der Speicherbereich, wo die erzeugten Objekte abgelegt werden.

  39. 39.

    In der neuen („verbesserten“) for-Schleife nimmt element alle Werte aus der Reihung ausdruck auf.

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer Fachmedien Wiesbaden GmbH

About this chapter

Cite this chapter

Solymosi, A., Grude, U. (2017). Gleichwertige Lösungen. In: Grundkurs Algorithmen und Datenstrukturen in JAVA. Springer Vieweg, Wiesbaden. https://doi.org/10.1007/978-3-658-17546-7_2

Download citation

Publish with us

Policies and ethics