int[] arr = {800,11,50,771,649,770,240, 9};
int temp = 0;
for (int write = 0; write < arr.Length; write++)
{
for (int sort = 0; sort < arr.Length - 1; sort++)
{
if (arr[sort] > arr[sort + 1])
{
temp = arr[sort + 1];
arr[sort + 1] = arr[sort];
arr[sort] = temp;
}
}
Console.Write("{0} ", arr[write]);
}
Alles was ich versuche zu tun ist eine einfache Blasensortierung mit diesem Array. Ich möchte herausfinden, warum die Sortierung vermasselt ist. Im Beispiel hier ist, wenn das Array {800,11,50,771,649,770,240, 9}
ist:Einfache Blasensortierung C#
Hier ist, was angezeigt wird: 11, 50, 649, 9, 649, 770, 771, 800
Ich denke, ich könnte etwas im Vergleich fehlen.
Sie äußerte Schleife vom Anfang bis zum Ende geht ist, soll Ende, um zu starten! Auch deine innere Schleife sollte auf den Wert von write beschränkt sein. – Polity
@Polity: Ich glaube nicht, dass das korrekt ist. Wie Antworten zeigen, ist die äußere Schleife korrekt wie sie ist. Du hast aber recht mit der inneren Schleife. –
Ich hoffe, das ist nur eine Übung beim Lernen von Array-Manipulationen? Ich kann mir keine Anwendung vorstellen, bei der eine Bubble Sort die "optimale" Sortierstrategie wäre. Wenn es nur zur Demonstration/mentalen Übung ist, dann gut, aber wenn Sie dies verwenden, ist eine reale Anwendung, vielleicht sollten Sie sich einige andere Sortieralgorithmen ansehen. – Th3Minstr3l