Bubblesort

Sortierverfahren
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 22. Mai 2003 um 09:25 Uhr durch Wst (Diskussion | Beiträge) (wik). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Bubblesort ist ein primitiver Sortieralgorithmus, der nebeneinander liegende Elemente vergleicht und ggf. vertauscht, falls sie in der falschen Reihenfolge vorliegen. Je nachdem ob auf- oder absteigend sortiert wird, steigen die kleineren oder größeren Elemente wie Blasen im Wasser (daher der Name) immer weiter nach oben, d.h. an den Anfang der zu sortierenden Liste.

Der Algorithmus besitzt eine quadratische und daher im Vergleich zu anderen Sortieralgorithmen eher schlechte Worst-Case-Laufzeit, Informatiker notieren dies mittels Landau-Symbol durch . Trotz der theoretisch schlechten Laufzeit findet er Anwendung in der Abbruchbedingung rekursiver Sortieralgorithmen wie QuickSort oder MergeSort, da er für eine sehr kleine Anzahl an zu sortierenden Elementen schneller ist als fortgesetzte rekursive Funktionsaufrufe.

Beispielimplementation in Java:

public static int[] bubblesort(int[] tosort) {

  if(tosort.length < 2) { // Bei weniger als 2 Elementen
    return tosort;        //  muss nicht sortiert werden
  }

  int switches = -1; //Anzahl der Vertauschungen
  int tmp;           //Temporaere Variable zum tauschen.

  while(switches != 0) {
    switches = 0;
    for(int i = 0; i<tosort.length-1; i++) {
      if(tosort[i] > tosort[i+1]) {
        tmp = tosort[i+1];
        tosort[i+1]=tosort[i];
        tosort[i]=tmp;
        switches++;
      }
    }
  }

  return tosort;
}

siehe auch: Liste von Algorithmen