Hi Detective und schön, dass du sowas machen darfst.
Also
[Zur Link-Ansicht bitte registrieren.] ist eine Sortier-Methode, die wie folgt funktioniert:
Du hast z.B. eine Zahlenkette von 5 Zahlen, auch
[Zur Link-Ansicht bitte registrieren.] genannt.
Hier ein Beispiel: { [8] [76] [66] [4] [88] }
Jetzt werden nacheinenader immer zwei Zahlen verglichen, und falls die erste größer als die zweite ist, werden die Zahlen getauscht, das sieht dann so aus:
Als erstes werden die 8 und die 76 überprüft. Da die größere Zahl an zweiter Stelle steht geschieht nichts. Nun zur nächsten Zahl.
76 und 66. Da die 76 größer als die 66 ist, werden beide Zahlen getauscht.
Dieses Prinzip wiederholt man solange, bis alle Zahlen in der Größenordnung richtig stehen. Vorne die kleinste, hinten die Größte, hier mal die komplette Sortierung der Zahlenkette:
Code:
[8] [76] [66] [4] [88]
[8] [76] [66] [4] [88]
[8] [76] [66] [4] [88] <-- tauschen
[8] [66] [76] [4] [88] <-- tauschen
[8] [66] [4] [76] [88]
[8] [66] [4] [76] [88]
[8] [66] [4] [76] [88] <-- tauschen
[8] [4] [66] [76] [88]
[8] [4] [66] [76] [88]
[8] [4] [66] [76] [88] <-- tauschen
[4] [8] [66] [76] [88]
Das ganze funktioniert natürlich auch mit drei Zahlen.
Jetzt gilt es den Code heraszufinden.
Grob könnte man es so zusammenfassen:
Du baust eine Wiederholung, die, solange eine Wahr/Falsch-Variable 'falsch' ist, immer wieder die nächsten Zwei zahlen überprüft und ggf. vertauscht.
Zusätzlich musst du bei jedem Durchgang überwachen, ob überhaupt eine Zahl vertauscht wurde. Denn am Schluss wird ja noch einmal durch jede Zahl durchgegangen, unendlich weiter. Wenn aber nichts mehr verändert wurde merkst du dass dann, setzt die Anfangs-Variable auf 'wahr', und die Schleife stoppt.
Das ist das Grundprinzip.
Code gibt es genug, wenn du mit Google danach suchst.
Ich habe diese hier z.B. durch Google gefunden:
[Zur Link-Ansicht bitte registrieren.] [Zur Link-Ansicht bitte registrieren.]
Hier findest du Code-Snippets vor allem in VB-Net/C#, falls du das ganze nach C++ übersetzen kannst:
[Zur Link-Ansicht bitte registrieren.]