Skip to main content
  • 11k Accesses

Zusammenfassung

„Einen Satz von gleichartigen Daten (Telefonverzeichnis, Bücherliste, Messergebnisse) in eine bestimmte Reihenfolge zu bringen (ordnen) ist eine klassische Aufgabe der Informatik. An den unterschiedlich komplexen Sortieralgorithmen kann man einerseits das „Programmieren im Kleinen“ (mit Verzweigungen und Schleifen) sehr gut üben; andererseits ist hier durch das Wachstum der zu sortierenden Datenmengen die Frage nach der Komplexität eines Algorithmus schon in der Zeit gestellt worden, in der Informatik primär durch Mathematiker getrieben wurde – daher existieren gute theoretisch fundierte Analysen dafür. Auch wenn heute Sortieralgorithmen nicht mehr programmiert werden müssen, weil es viele und gute vorgefertigte gibt, ist der gut ausgebildete Informatiker gehalten, sie zu kennen, um für eine gegebene Aufgabe den optimalen Algorithmus auswählen zu können.“

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.

    D. h. Basistyp wie int, char oder float, aber kein boolean.

  2. 2.

    Der generische Parameter <Telefonbucheintrag> stellt sicher, dass compareTo zwei Objekte vom gleichen Typ vergleicht.

  3. 3.

    Wir gehen davon aus, dass es keine zwei Kunden mir gleicher Kundennummer gibt.

  4. 4.

    Design pattern, s. z. B. [Gam].

  5. 5.

    Auf Deutsch: Blasensort .

  6. 6.

    Bei aufsteigenden Sortierung.

  7. 7.

    Der geschachtelte generische Parameter <E extends Comparable<E>> stellt sicher, dass compareTo zwei Objekte vom selben (aktuellen generischen) Typ vergleicht.

  8. 8.

    Mit den Laufvariablen i und j.

  9. 9.

    Wir gehen hier und im Weiteren davon aus, dass sich die Methode sort (wie oben) in einer generischen Klasse nach dem Entwurfsmuster Strategie befindet.

  10. 10.

    Auf Deutsch: direktes Einfügen .

  11. 11.

    Auf Deutsch: direktes Auswählen .

  12. 12.

    Benannt nach D. L. Shell, s. [Sh].

  13. 13.

    subList enthält das Element mit dem Index des zweiten Parameters nicht.

  14. 14.

    In einer Version mit komplexerer Signatur (mit einem zusätzlichen Ausgabeparameter, wie bei merge) wird die Erzeugung des Ausgabeobjekts dem Benutzer überlassen.

  15. 15.

    Auf Englisch: heap.

  16. 16.

    Auch bei anderen Programmiersprachen wie C, Pascal oder Ada, nicht aber bei Cobol und (der Originalversion von) Fortran.

  17. 17.

    Der Operator/bezeichnet die Ganzzahldivision, d. h. 1/2 = 0, 2/2 = 1, 3/2 = 1, 4/2 = 2, usw.

  18. 18.

    Es gibt natürlich auch „umgekehrte Halden“, bei denen keine Komponente einen kleineren Schlüssel hat als ihr Vorgänger.

  19. 19.

    Referenzierte Objekte, wie auch globale Variablen können jedoch verändert werden.

  20. 20.

    Nicht zu verwechseln mit den Ein/Ausgabeströmen von java.io.

  21. 21.

    Ähnlich wie iterator(), der ein Iterator-Objekt liefert; s. Abschn. 3.2.4.

  22. 22.

    „terminal operation“, die kein Stream liefert, so kann ihr keine Stream-Methode angehängt werden.

  23. 23.

    Hier wird die Speicherkomplexität linear.

  24. 24.

    Die Referenz muss global vereinbart werden, weil sie in der letzten Zeile des Rumpfs verändert wird (Seiteneffekt).

  25. 25.

    Auf Englisch merge.

  26. 26.

    Häufig durch die Implementierung der Schnittstelle Iterable<E>, die die Funktion iterator() enthält; diese liefert ein Iterator-Objekt.

  27. 27.

    Wir könnten auch eine Funktion merge mit dem Ergebnistyp Collection<E> schreiben. Der Vorteil ist hier, dass der Benutzer die Klasse des Ergebnisobjekts bestimmen kann.

  28. 28.

    Genauer: eine variable Anzahl von Parametern, eingeführt in Java 5.

  29. 29.

    Auf English deferred.

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). Sortierverfahren. In: Grundkurs Algorithmen und Datenstrukturen in JAVA. Springer Vieweg, Wiesbaden. https://doi.org/10.1007/978-3-658-17546-7_5

Download citation

Publish with us

Policies and ethics