Seite 2 von 2
Verfasst: 21.09.2006 17:13
von rolaf
Frogger hat geschrieben:Dann bleibt mir wohl nichts anderes übrig.

Oder Steigerung vor der Sortierung mit einer Zahl addieren das alles im Plusbereich liegt und nach dem sortieren diese Zahl wieder abziehen, dann brauchst du keine eigene Sortierroutine.
Verfasst: 21.09.2006 18:06
von Frogger
Oder Steigerung vor der Sortierung mit einer Zahl addieren...
Das ist es
Wieso bin ich nicht sofort drauf gekommen

Verfasst: 21.09.2006 18:26
von Kaeru Gaman
das ist wirklich ne gute idee.
aber man muss drauf achten, dass man die genauigkeit nicht verlässt.
den "offset" so gering wie möglich halten.
also, wenn die "steigerung" ursprünglich in 100stel schritten vorliegt,
ist es tötlich, 10Mio zu addieren für die sortierung.
wenn der bereich von "steigerung" recht groß ist,
evtl. auf double ausweichen, um auf nummer sicher zu gehen.
achja.. natürlich könnte auch ein umsteigen auf fixkomma abhilfe schaffen...

Verfasst: 21.09.2006 19:14
von Frogger
Die Steigerung wird in % angegeben also wäre das dann kein Problem.
Den "offset" hab ich jetzt bei 1000.
Es wird nicht mehr als +100% angezeigt aber es ist durchaus möglich auf -1000% zu kommen.
Beispielsweise nach einer heftigen Schlacht mit viel Verlust. (es ist für ein Allytool, falls sich jemand wundert)
Verfasst: 21.09.2006 19:21
von Kaeru Gaman
wie gesagt, die verwendung von fixkomma-zahlen für sowas ist auch recht praktisch.
notfalls kann man innerhalb der rechnung zuerst ein float casten, um ein float-ergebnis zu erhalten...
Verfasst: 20.10.2006 15:56
von steini
Hatte ein ähnliches Problem
evtl kann dir das ja helfen.
Code: Alles auswählen
Structure dist
nr.l
val.f
EndStructure
Global NewList vlist.dist()
SortStructuredList(vlist(), 0, OffsetOf(dist\val), #PB_Sort_Long )
Obwohl val fom type float ist hat das Sortieren mit Long funktioniert.
Hab aber zu Sicherheit beides auf Double geändert
Verfasst: 20.10.2006 16:07
von Kaeru Gaman
das halte ich eher für zufall.
du müsstest die routine mal nachtesten mit einem ausreichens großen wertebereich.
wenn nämlich ersteinmal der exponent unterschiedlich genug ist,
dann kann eine interpretation als Long auch nicht mehr greifen.
Verfasst: 21.10.2006 01:19
von Peloka
Mein Tip wäre alle Zahlen mit einem Fixwert zu addieren,
dann sortieren,
dann wieder Fixwert subtraieren.
Verfasst: 21.10.2006 01:55
von NicTheQuick
Meine Idee wäre den Quicksort einfach selbst schreiben.
Es gibt dazu auch Beispiel in der PureArea und im Forum sicherlich auch.
Einfach mal suchen.