Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
18. Feb 2012
@Horst
da sind einige interessante dinge in deinen letzten beiträgen, also was die laufzeit optimiert (bzw könnte)
ich habe mit meinen tests erstmal abgeschlossen
durch die hilfe von euch konnte ich die zeit im verhältniss von 5:1 kürzen :)
nach bischen mehr als 24h war der rechner fertig... aber leider war das ergebniss nicht so wie gehofft^^
also neue idee muß her^^
mfg Dano
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
18. Feb 2012
ja solche ergebnisse hatte ich auch... denke das es dann an dem memorymanager von meinem D7 liegt... mußte aus dem grund einige sachen extrem umbauen um ernsthaft vergleichbare ergebnisse zu erhalten
mfg Dano
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
13. Feb 2012
@horst
hab deine angehängte zip mal zum laufen gebracht
MaxRound 100000000
Tests mit Dummy
Anzahl: 100000000 Ticks: 704506120 ms: 210,968.3
Tests mit Selectionsort3Down
Anzahl: 100000000 Ticks: 8187710850 ms: 2451,738.3
Tests mit NetworkSort2
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
9. Feb 2012
NetworkSort funktioniert einwandfrei, nur die variante von Aphton war irgendwie komisch, ich hatte auch das ergebniss das unter bestimmten kombinationen seine funktion nicht richtig sortiert hatte
aber ich fand das nicht schlimm, immerhin war er so freundlich und hat mit viel aufwand versucht mir zu helfen ;) Danke an Aphton :)
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
9. Feb 2012
@Furtbichler
ich habe heute dein networksort noch mal überarbeitet, so wie du schon gepostet hattest, und natürlich ist er schneller. ca. 10-20% gegenüber dem Selectionsort3
im prinziep ist der networksort ein shell-sort... ich hatte nur die reihenfolge der vergleiche nicht hinbekommen... (siehe mein 1ten post, ist bischen verkehrt^^)
procedure NetworkSort2(var B: ByteArray);
var
T:...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
7. Feb 2012
ich habe deine function folgendermaßen kopiert
procedure NetworkSort(var A: ByteArray);
procedure SwapIfLess(i, j: Byte);
var h: Byte;
begin
if a.a > a.a then begin
h := a.a; a.a := a.a; a.a := h;
end
end;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
5. Feb 2012
procedure Selectionsort3(var B: ByteArray);
var
T: Byte;
begin
With B do begin
if A > A then begin T:= A; A:= A; A:= T; end;
if A > A then begin T:= A; A:= A; A:= T; end;
if A > A then begin T:= A; A:= A; A:= T; end;
if A > A then begin T:= A; A:= A; A:= T; end;
if A > A then begin T:= A; A:= A; A:= T; end;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
5. Feb 2012
Danke für die vielen antworten, ich versuch mal paar versionen und messe die laufzeiten ;)
mfg Dano
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
4. Feb 2012
hm, ich wäre mir da eigentlich sicher das temp zur hauptfunktion gehöhrt,da ich es als variable von "D4SortByteArray" deklariert habe... aber ich guck mir gleich nochmal den debugger an
Temp dürfte nur einmal auf dem stack erzeugt werden, da "SwapB" nur local ist
um es noch effizienter zu machen hätte ich natürlich die funktion von SwapByte auch dierekt in den code mit reinschreiben können......
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Dano,
4. Feb 2012
Hallo,
ich habe ein gepacktes array von 4 byte = Cardinal
ByteArray = packed record
case Integer of
1: (A: array of Byte);
2: (Card: Cardinal);
end;
ich möchte das array sortieren, in diesem fall absteigend