Bubblesort optimieren

? Nun, ein paar Sachen kann man am Algorithmus noch drehen:
Anstatt immer n Durchgänge auszuführen, hörst du einfach auf, wenn du im letzten Durchgang gar keine Vertauschung gebraucht hast. Damit hast du einen Best Case von O(n).
Außerdem wird dir auffallen, dass nach n Durchgängen die letzten n Items bereits sortiert sind, die innere Schleife kannst du also einschränken.
Insgesamt wärst du dann bei dieser Version angelangt:
en.wikipedia.org/wik...tive_implementations
Oder meintest du Optimieren vom Code her? Das Vertauschen ist in Ordnung, allerdings solltest du die drei Variablen nicht vor der Schleife deklarieren, sondern erst bei der ersten Verwendung.
Als nächstes solltest du die Methode vollkommen autark gestalten:
C#-Quelltext
1:
| static void BubbleSort(int[] a) |
Das gleiche Problem gibts bei deiner Library, ich schreibe nachher noch was dazu.
Der letzte Schritt wäre dann die Generalisierung zu
C#-Quelltext
1:
| static void BubbleSort<T>(IList<T> a) where T : IComparable<T> |
aber das hat vielleicht noch Zeit

.