Skip to main content

2017 | OriginalPaper | Buchkapitel

2. Gleichwertige Lösungen

verfasst von : Andreas Solymosi, Ulrich Grude

Erschienen in: Grundkurs Algorithmen und Datenstrukturen in JAVA

Verlag: Springer Fachmedien Wiesbaden

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

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.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
const ist ein reserviertes Wort in Java, wird aber von den derzeitigen Compilern nicht ausgewertet.
 
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
Mit den Laufvariablen von, bis und i.
 
4
Mathematiker sagen Matrix, Java-Programmierer sagen Tabelle.
 
5
Mit den Laufvariablen von und bis.
 
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
Italienischer Historiker und Stratege, 1469–1527.
 
8
landläufig: „überladene Funktionen“; jedoch nicht die Funktion, sondern ihr Name wird überladen.
 
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
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
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
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
„… program testing can be used very effectively to show the presence of bugs, but never to show their absence“ [EWD].
 
14
s. Unendlichkeitsbedingung im Abschn. 7.​1.
 
15
s. alle gängigen Lehrbücher für Software Engineering.
 
16
O steht für Ordnung oder Größenordnung.
 
17
c ist eine Konstante ungleich 0.
 
18
Nach der Terminologie von [SolSch] Multibehälter. In der Java-Bibliothek gibt es ähnliche Sammlungsklassen (collection classes).
 
19
Auf Englisch: stack; auch Keller genannt.
 
20
Abkürzung für last in first out.
 
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
Es wäre eleganter und konsistenter, new E[größe] schreiben zu können, aber Java 5 erlaubt keine generic array creation.
 
23
In manchen anderen Programmiersprachen (wie Pascal oder C) erst nach einer forward-Vereinbarung.
 
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
Der Parametertyp des Knotens wird aus dem Kontext (Typ von anker) vom Compiler seit der Version 7 ermittelt (inferiert ).
 
26
Die Richtung ist zeitlich gemeint: Jeder Knoten referenziert den dahinterliegenden Knoten, der vor ihm eingetragen wurde, also rückwärts.
 
27
Jeder Knoten referenziert den Knoten, der nach ihm eingetragen wurde: vorwärts.
 
28
Abkürzung für first in first out.
 
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
Eine alternative Technik ist, hierfür einen Pseudoknoten zu verwenden, wie im Abschn. 6.​1.​3.
 
31
public ist nicht sinnvoll, wenn die innere Klasse Knoten private ist.
 
32
Der Kommentar const (im Sinne von C++) wird verwendet, um anzudeuten, dass die Methode das Zielobjekt unverändert lässt.
 
33
Die Methoden entleeren und istLeer bilden zusammen eine Eigenschaft (im Sinne von C#) und müssen konsistent implementiert werden.
 
34
Nach der Terminologie von [SolSch] Mutatoren.
 
35
Nach der Terminologie von [SolSch] Informatoren: Funktionsmethoden, die in der Schnittstelle mit // const gekennzeichnet wurden.
 
36
Nur in Einzelfällen, und meistens nur schwer.
 
37
GRÖSSE ist der aktuelle Konstruktorparameter.
 
38
Auf Englisch: heap; der Speicherbereich, wo die erzeugten Objekte abgelegt werden.
 
39
In der neuen („verbesserten“) for-Schleife nimmt element alle Werte aus der Reihung ausdruck auf.
 
Metadaten
Titel
Gleichwertige Lösungen
verfasst von
Andreas Solymosi
Ulrich Grude
Copyright-Jahr
2017
DOI
https://doi.org/10.1007/978-3-658-17546-7_2