Ich versuche eine Liste zu sortieren, die z.t gleiche Werte aufweisst. Die Sortierung springt dabei von 2 Zuständen hin und her. Kann man das irgendwie verhindern oder hat Sort bei gleichen Werten Probleme ??
<Beispiel> Sotierung nach M, ergibt einmal
A : 21 M. 50 L 22
A : 0 M. 50 L 2
A : 5 M. 50 L 7
A : 49 M. 50 L 12
A : 13 M. 50 L 16
A : 17 M. 50 L 19
A : 33 M. 50 L 22
A : 25 M. 50 L 22
A : 29 M. 50 L 22
A : 9 M. 50 L 5
A : 37 M. 50 L 20
A : 45 M. 50 L 15
A : 53 M. 50 L 10
A : 57 M. 50 L 9
A : 61 M. 50 L 6
A : 65 M. 50 L 5
A : 69 M. 50 L 4
A : 73 M. 50 L 3
A : 77 M. 50 L 2
A : 81 M. 50 L 1
A : 85 M. 50 L 1
A : 89 M. 50 L 1
A : 93 M. 50 L 0
A : 97 M. 50 L 0
A : 41 M. 120 L 35
danach erneute Sortierung nach M, ergibt :
A : 65 M. 50 L 5
A : 69 M. 50 L 4
A : 73 M. 50 L 3
A : 53 M. 50 L 10
A : 57 M. 50 L 9
A : 61 M. 50 L 6
A : 89 M. 50 L 1
A : 93 M. 50 L 0
A : 97 M. 50 L 0
A : 77 M. 50 L 2
A : 81 M. 50 L 1
A : 85 M. 50 L 1
A : 49 M. 50 L 12
A : 13 M. 50 L 16
A : 17 M. 50 L 19
A : 21 M. 50 L 22
A : 0 M. 50 L 2
A : 5 M. 50 L 7
A : 9 M. 50 L 5
A : 37 M. 50 L 20
A : 45 M. 50 L 15
A : 33 M. 50 L 22
A : 25 M. 50 L 22
A : 29 M. 50 L 22
A : 41 M. 120 L 35
Hallo derfrecheDachs,
Stichwort ist "stabil". List<>.Sort verwendet Quicksort und Quicksort arbeitet nicht stabil. Wenn du keinen IComparer definieren kannst, der eine totale Ordnung garantiert, dann musst du auf einen anderen, stabilen Sortieralgorithmus ausweichen.
herbivore
The SortedList generic class is a binary search tree with O(log n) retrieval
Also auf Collections.Generic.SortedList umsteigen.
du müsstest den Comparer so schreiben, dass er bei gleichen M noch nach L sortiert.
loop:
btst #6,$bfe001
bne.s loop
rts
Danke euch für die Antworten.
Wusste bisher nicht, dass der Quicksort instabil ist.
Ich hab jetzt den IComparer so angepasst, dass er bei gleichen Werten einfach die nächste Spalte zum Sortieren mit hinzunimmt.
Also wenn ich zuerst nach A sortiere, dann M und L hinzunehme