Entwickler-Ecke

Open Source Projekte - Sortierverfahren - grafische Veranschaulichung


Mathematiker - So 21.10.12 08:53
Titel: Sortierverfahren - grafische Veranschaulichung
Hallo,
obwohl ich dem Sortierkino von Delphi-Laie weder Konkurrenz machen will, noch kann, veröffentliche ich doch mein eigenes, kleines Programm zum Veranschaulichen von Sortierverfahren.
In meinem Programm werden die zu sortierenden Elemente nur als Pixel dargestellt, mit dem Index des Elementes nach rechts und dem Betrag des Elementes nach oben.
Es sind 18 verschiedene Verfahren enthalten. Die Maximalzahl von zu sortierenden Zahlen ist auf 16000 begrenzt.
Einen Vorteil hat mein Programm: Steuerung und Darstellung sind in einem Fenster zusammengefasst.
Vielleicht kann ja jemand das Programm inkl. Quelltext gebrauchen.

Beste Grüße und einen schönen Sonntag
Mathematiker


Horst_H - So 21.10.12 11:14

Hallo,

wie immer meine Kritik an diesen "Dingern".
Wozu Zeit stoppen/anzeigen, wenn es rein gar nichts mit der wahren Leistungsfähigkeit zu tun hat.
Select-Sort saust nur so dahin und ist in der Laufzeit quadratisch von n = Anzahl der zu sortierenden Elemente abhängig->Anzahl der Vergleiche quadratisch ( n*(n+1)/2), aber es tauscht eben nur minimal n-fach.

Meine Vorschlag neben der Angabe für Austauschungen und Vergleiche, eine Art Kostenfaktor dafür einführen und Gesamtkosten angeben.
Was mir noch einfällt wäre ein Maß für die Lokalilität der Vergleiche, aber wie soll man diese messen.
Mir fiel einmal auf, dass merge-sort von Zeigern auf records bei großen Datenmengen von mehreren 100 MB schneller als quicksort war, weil die Daten auf die gezeigt wird eben nicht, wie bei merge-sort lange Zeit benachbart und damit im CPU-Cache zu liegen kamen.
Aber auch im Hauptspeicher hintereinanderweg ( select sort / bubble-sort) ist schneller als ständiger völlig zufälliger Zugriff.

Nun denn, Du willst es ja nicht selbst weiterentwickeln und stellst es ja eigenen Überarbeitung zur Verfügung.

Schönen Sonntag bei diesem ausgesprochem schönem Herbsttag

Gruß Horst


bummi - So 21.10.12 11:15

:zustimm: solltest Du vielleicht mal verlinken wenn wieder jemand ein Problem mit seinem Bubblesort hat, vielleicht lässt sich die Wahl des Algorhytmus dann beizeiten in die richtige Richtung verlagern.


Mathematiker - So 21.10.12 13:20

Hallo Horst_H,
user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Wozu Zeit stoppen/anzeigen, wenn es rein gar nichts mit der wahren Leistungsfähigkeit zu tun hat.

Du hast vollkommen recht. Und ich war auch im Zweifel, ob ich die Zeit angeben soll.
Ich habe es dann doch eingefügt, weniger um verschiedene Verfahren zu vergleichen, als viel mehr die Zeit für unterschiedliche große Datenmengen zu messen.
Natürlich wird auch dann nur die Zeit gemessen, die das Vertauschen und vor allem die grafische Darstellung benötigt.
Eine richtig vernünftige Idee zum Vergleich habe ich leider nicht.

Beste Grüße
Mathematiker