Kleine Sortierfunktion für Zahlen Arrays
Übersicht

![]() |
TrustBetreff: Kleine Sortierfunktion für Zahlen Arrays |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Funktion:
BlitzMax: [AUSKLAPPEN]
Anwendungsbeispiel: BlitzMax: [AUSKLAPPEN] SuperStrict Will man andere Datentypen sortieren als "Int" einfach den Funktionskopf der Sortierfuntion abändern: zB. anstatt "int" BlitzMax: [AUSKLAPPEN] sort(array:Int[] Var "float" BlitzMax: [AUSKLAPPEN] sort(array:Float[] Var) |
||
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen. |
- Zuletzt bearbeitet von Trust am So, Mai 20, 2012 19:42, insgesamt 9-mal bearbeitet
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzMax unterstützt auch die einfache Funktion array.Sort für jedes Array. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach ienfach mal array.sort() bei einem Array deiner Wahl, trust ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für das Codearchiv sollte der Code mindestens Strict sein.
Ob rekursiv viele Arrays zu bearbeiten auf lange Sicht in Ordnung geht...? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Trust |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, hab erst garnicht geschaut ob es sowas schon gibt.
Danke für den Hinweiß ![]() [Edit] @Xeres: habs angepasst. @Xeres: Hab den Code abgeändert, aber glaube du hast recht, 1000 Einträge zu sortieren dauert bei mir immernoch ca. 3 sek. |
||
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen. |
- Zuletzt bearbeitet von Trust am So, Mai 20, 2012 19:02, insgesamt einmal bearbeitet
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist aber auch nur ein schlecht optimierter Bubblesort-Algorithmus.
Beispiel: Größte Zahl steht am Anfang, Rest ist sortiert. Dein Algorithmus: Tauscht die ersten beiden -> Rekursion Tauscht das 2. und 3. Element -> Rekursion Tauscht das 3. und 4. Element -> Rekursion ... Und am Ende läuft noch jede Rekursionstiefe einmal über das komplette Array, wobei es n Rekursionstiefen gibt -> Anzahl Vergleiche: n^2 Normaler Bubble-Sort würde hier n+(n-1) Vergleiche benötigen, also < 2n |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
![]() |
Trust |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, der Code ist miserabel!
[Edit] Damit der Beitrag einen Sinn hat, habe ich nun ein Bubblesort draus gemacht. ( Siehe ersten post ) |
||
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen. |
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Noch Optimierungsvorschlag (nur falls du Lust hast, ich brauch den Code nicht^^):
Im Worstcase (absteigend sortiertes Array) brauchst du nun n*n Vergleiche, weil du immer wieder bis zum letzten Element durchgehst. Nach einem Durchgang steht die größte Zahl aber bereits an letzter Stelle, beim zweiten Durchgang die zweitgrößte an vorletzter, usw. Somit würdest du (nur) n+(n-1)+(n-2)+...+(n-n)=n*(n+1)/2 Vergleiche benötigen. Ist zwar asymptotisch das gleiche, aber optimiert ist optimiert. ![]() |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
![]() |
Trust |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ChaosCoder:
Soviel wollte ich mich garnicht damit beschäftigen ^^ Habs angepasst ( siehe ersten post ) Danke ![]() |
||
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group