Java: Generischer Bubblesort Algorithmus #1
Bubblesort ist ein ineffizienter, dafür sehr leicht zu implementierender Sortieralgorithmus. Er beruht darauf, dass falls sich zwei Elemente eines Arrays in eine gewisse Richtung (größer/kleiner) unterscheiden, diese vertauscht werden, dass so lange, bis nichts mehr vertauscht wurde.
Zutaten für ein Bubblesort:
C String (Char) Sortierung:
Möchte ich jetzt jedoch einen int-Array sortieren, darf ich das Ganze nochmal neu schreiben. Einen
Dieses Problem, ein und dieselbe Klasse/Methode für mehrere Typen verwenden zu können und gleichzeitig Typensicherheit zu gewährleisten, wurde mit Einführung der
Ein Beispiel dafür, ist die
Das
Daraus folgend wird hier eine Instanz von ArrayList definiert, die Daten des Objekttyps Integer enthält:
Weiter im nächsten Post.
Zutaten für ein Bubblesort:
- 2 Schleifen
- 1 If-Abfrage
- 2 Hilfsvariablen
- 1 Array
C String (Char) Sortierung:
char * bubblesort(const char *str){
do{
shifted = 0;
for (int i = 1; i < strlen(str); i++){
if (str[i] < str[i - 1]){ //
~~~ Die eigentliche Logik ~~~
tmp = str[i];
str[i] = str[i - 1];
str[i - 1] = tmp;
shifted = 1;
}
}
} while (shifted != 0);
return str;
}
Möchte ich jetzt jedoch einen int-Array sortieren, darf ich das Ganze nochmal neu schreiben. Einen
void*
Pointer könnte ich noch reinwerfen, da möchte ich dann aber lieber nicht wissen, was raus kommt. Dieses Problem, ein und dieselbe Klasse/Methode für mehrere Typen verwenden zu können und gleichzeitig Typensicherheit zu gewährleisten, wurde mit Einführung der
Generics
in Java5 gelöst.Ein Beispiel dafür, ist die
ArrayList
:
ArrayList<T> arrayList;
Das
T
im Diamant-Operator <>
, gibt hier den Datentyp an. Daraus folgend wird hier eine Instanz von ArrayList definiert, die Daten des Objekttyps Integer enthält:
ArrayList<Integer> arrayList;
Weiter im nächsten Post.