Sortieren eines Feldes der Mächtigkeit n mit Indexsort |
![]() |
![]() |
Letztmalig dran rumgefummelt: 30.03.10 05:55:21 |
![]() |
Index-Sort - das Prinzip der Verwaltung der "Verweise" - ist der Klassiker unter den Sortieralgorithmen für Datenbanken - wer eine "mächtige" Datenbank sortieren muss, kommt genau damit sehr schnell in Berührung. Er ist für große Datenmengen sehr effizient und in seiner Logiksimpel - und auch eine Programmierung zumindest auf Hochsprachenniveau recht einfach und vor allem erfolgversprechend. | |||||||
![]() |
1. Problembeschreibung 2. Lösungsalgorithmus und -varianten 3. Programmstrukturen und -möglichkeiten 4. Verwandte Themen |
|||||||
![]() |
|
|||||||
![]() |
|
|||||||
![]() |
Beachte vor allem bei Problemlösungsalgorithmen: Murphys Gesetze sowie deren Optimierung durch Computer |
1. Problembeschreibung |
![]() |
![]() |
![]() |
![]() |
Eine in ihrer Anzahl beliebig gegebene Menge (theoretisch größer als 2) von Elementen soll sortiert werden. Wird die Menge mächtig, so ist der hier vorgestellte Algorithmus aufgrund seines Aufwandes besonders vorteilhaft - zumal eine Sortierung in Praxis aufgrund der großen Datenmenge nicht auf dem Speicher (RAM und somit schnell) erfolgt, sondern es wird auf externen Datenträgern - häufig noch weit entfernt (Netzwerke) sortierend zugegriffen. | ||||||||
![]() |
|
||||||||
![]() |
|
||||||||
![]() |
auf- sowie absteigende Folgen sollen eingeschlossen sein | ||||||||
![]() |
der Beginn einer sortierten Folge soll zufällig sein |
||||||||
![]() |
gleiche Elemente sollen generierbar sein |
2. Lösungsalgorithmus und -varianten |
![]() |
![]() |
![]() |
![]() |
Im einfachsten Falle wird einfach n-1 mal "durchgebubbelt" und dies auch n-1 male wiederholt. Das ist eine grundsätzlich richtige Lösung, welche zu einem absolut korrektem Ergebnis führt. Erst genaueres Betrachten der Zwischenergebnisse zeigt, dass enorme Mengen an absolut unnötigen Schritten absolviert werden. So steht nach einem "Durchbubbeln" zumindest eines der größten Elemente definitiv auf der letzten Stelle - muss also in den Folgedurchläufen gar nicht mehr in die Betrachtung einbezogen werden. | ||
![]() |
verbale Beschreibung des Lösungsalgorithmus: Beginnend beim kleinsten (sukzessive größten) Element beginnend, werden jeweils zwei benachbarte Elemente verglichen und in dem Falle, dass auf dem größeren Platz das kleinere Element steht, ausgetauscht. Die geschieht bis zum vorletzten Element der Menge und wird anschließend einmal weniger wiederholt, wie es Elemente gibt. |
||
![]() |
Verringerung des Aufwandes zum Grundalgorithmus (das ändert nichts an der Tatsache, das der Aufwand n-polynomial bleibt)
|
||
![]() |
|
||
![]() |
|
3. Programmstrukturen und Lösungsmöglichkeiten |
![]() |
![]() |
![]() |
![]() |
Die Effektivität des Programms liegt in der Verwendung einer Konstante zur Dimensionierung des Feldes - das lässt sich unter Umgehung der Deklarationen für Standard-PASCAL noch effizienter gestalten, indem eine dynamische Dimension des Arrays angenommen und der jeweils gültige Wert abgefragt wird. | ||||
![]() |
|
||||
![]() |
Aufwandsbetrachtung des
Algorithmus: Anzahl der Vergleiche: Anzahl der Vertauschungen Anzahl der Zuweisungen: Anzahl der Durchläufe |
4. Verwandte Themen |
![]() |
![]() |
![]() |
![]() |
Das Vorangestellte hilft wirtschaften, löst jedoch kein einziges Problem (allerdings ohne Beachtung der Worst-Case-Strategien wird man auch nicht erfolgreich Software entwickeln und/oder informatische Projekte realisieren können). Deshalb nunmehr das, was wirklich Arbeiten hilft. | ||||||||||||
![]() |
|
||||||||||||
![]() |
|
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost am 28. März 2010 um 16.23 Uhr |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |
Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-) |