Hallo,
ich bin gerade dabei ein Programm zu erstellen und beim Testen fand ich raus, dass die Sortierung sehr langsam ist. Zuerst verwendete ich ein Array. Da ich aber für das Sortieren jedesmal extra ein Array erstellen musste, hab ich nun folgende Lösung gemacht:
(Sprache: C#)
Code
private void Sort(int in1, int in2, int in3, int in4, int in5, out int out1, out int out2, out int out3, out int out4, out int out5) {
out1 = in1;
out2 = in2;
out3 = in3;
out4 = in4;
out5 = in5;
int tmp;
if (out1 > out2) {
tmp = out1;
out1 = out2;
out2 = tmp;
}
if (out2 > out3) {
tmp = out2;
out2 = out3;
out3 = tmp;
}
if (out3 > out4) {
tmp = out3;
out3 = out4;
out4 = tmp;
}
if (out4 > out5) {
tmp = out4;
out4 = out5;
out5 = tmp;
}
if (out1 > out2) {
tmp = out1;
out1 = out2;
out2 = tmp;
}
if (out2 > out3) {
tmp = out2;
out2 = out3;
out3 = tmp;
}
if (out3 > out4) {
tmp = out3;
out3 = out4;
out4 = tmp;
}
if (out1 > out2) {
tmp = out1;
out1 = out2;
out2 = tmp;
}
if (out2 > out3) {
tmp = out2;
out2 = out3;
out3 = tmp;
if (out1 > out2) {
tmp = out1;
out1 = out2;
out2 = tmp;
}
}
}
Alles anzeigen
Dies ist zwar um ein vielfaches schneller als die vorherigen Varianten, aber das ist trotzdem noch zu langsam
Für das Sortieren gehen jetzt noch ca. 25% der Zeit drauf.
Kennt jemand eine schnellere Methode?
Edit: Mir ist klar, das ganze ist schon recht schnell gelöst, da das ganze aber ein paar 1000 Milliarden Mal sortiert wird, geht das trotzdem in die Sekunden hinein ...