Autor Beitrag
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 21.10.12 08:53 
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
Einloggen, um Attachments anzusehen!
_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein


Zuletzt bearbeitet von Mathematiker am Mo 05.11.12 23:54, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: Anika, Delphi-Laie
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: 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.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: 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

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein