Bubble-Sort Musterlösung

C / C++

Folgender Beispielcode arbeitet mit Arraygröße 10. Er sortiert das Array a vom kleinsten zum größten Element. Dabei funktioniert der Code rekursiv; die Funktion bubblesort() ruft sich so oft selbst auf, bis das Array komplett sortiert ist, also bis kein a[i] größer ist als der Nachfolger a[i+1].

Der C-Code ist nach C99-Standard geschrieben.

#include <stdio.h>
#define SIZE 10
 
void bubblesort(int *a)
{
    int i;
    for (i=0; i<(SIZE-1); i++)
    {
        if (a[i]>a[i+1])
        {
            int tmp=a[i];
            a[i]=a[i+1];
            a[i+1]=tmp;
            bubblesort(a);
        }
    }
}
 
int main (int argc, char * argv[])
{
    int a[SIZE]={0, 2, 60, 72, 3, 1, 5, 13, 9, 4};
    for (int i=0; i<SIZE; i++)
    {
        printf("%d, ", a[i]);
    }
    printf("\n");
    bubblesort(a);
    for (int i=0; i<SIZE; i++)
    {
        printf("%d, ", a[i]);
    }
    printf("\n");
}