bei qsort ist das problem, dass die zuordnung verloren geht. also komm ich wohl nicht um einen array herum, der der structs mit 1. dem und 2. der urpsrünglichen rangnummer enhält? so hab' ich's bis jetzt immer gelöst, wird jetzt aber etwas unübersichtlich und langsam... -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
Quicksort ist nicht "stabil". Das bedeutet, dass wenn zwei Elemente, die bezüglich der verwendeten kleiner-Relation gleich sind (also a ist nicht kleiner als b und b ist nicht kleiner als a) im Array sind, diese nach der Sortierung nicht zwingend in der gleichen Reihenfolge wie vorher auftauchen. Das macht allerdings nur bei komplexeren Datentypen, bei denen nicht alle Eigenschaften in den Vergleich einfließen einen Unterschied. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
ach das meinte der da hätte ich auch selber drauf kommen können. Ist doch aber eigentlich kein problem wenn er das array einfach vorher kopiert -- ...fleißig wie zwei Weißbrote
Ach sorum. Dann würde ich am besten nen stabilen Sortierungsalgorithmus verwenden. Am besten std::stable_sort, wenn du C++ programmierst. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Windalf postete ich auch nicht musst du schon den kronos fragen
ich hab' doch gar nix von kopieren gesagt... ich hab's jetzt mit structs und qsort gelöst, danke für's antworten. -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??>