Bubble Sort

Bubble Sort ist ein einfacher, iterativer Sortieralgorithmus, der durch wiederholtes Vergleichen benachbarter Elemente funktioniert.

Er vertauscht die Elemente, wenn sie in der falschen Reihenfolge stehen. Große Elemente "blubbern" wie Blasen nach oben (Ende des Arrays). Dieser Vorgang wird wiederholt, bis das Array vollständig sortiert ist.

Bubble Sort Ablauf

  1. Vergleiche alle benachbarten Elementpaare
  2. Tausche sie, wenn sie in falscher Reihenfolge sind
  3. Nach einem Durchlauf steht das größte Element ganz rechts
  4. Wiederhole für den verbleibenden Teil
  5. Stoppe wenn kein Tausch mehr nötig

Zeitkomplexität

Implementierungen

Java

public class BubbleSort {
    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n-1; i++) {
            boolean swapped = false;
            for (int j = 0; j < n-i-1; j++) {
                if (arr[j] > arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    swapped = true;
                }
            }
            if (!swapped) break; // Optimierung: bereits sortiert
        }
    }
}

Python

def bubblesort(arr):
    n = len(arr)
    for i in range(n):
        swapped = False
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
                swapped = True
        if not swapped:
            break
    return arr

C Sprache

#include <stdio.h>

void bubblesort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        int swapped = 0;
        for (int j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
                swapped = 1;
            }
        }
        if (!swapped) break;
    }
}
Performance

O(n²) Komplexität macht Bubble Sort nur für Lehrzwecke und kleine Datenmengen geeignet. Für produktive Anwendungen sollten effizientere Algorithmen wie Quicksort verwendet werden.