Bubblesort sortiert nicht richtig



  • Guten Tag,

    aus irgendeinem Grund sortiert mein Bubblesort nicht richtig.
    Mein Code lautet:

    #include <stdio.h>
    #include <stdlib.h>
    
    void bubblesort(int *feld, int anzahl)
    {
        int i;
        int end;
        int anzahlvertauschungen;
        int w;                                  //Variable zum Zwischenspeichern
    
        end =anzahl;
    
        do
        {
            anzahlvertauschungen=0;
            end--;
    
            for(i=0; i<end; i++)
            {
                if(feld[i]>feld[i+1])           //Wenn das Element groesser als sein Nachbar ist, werden die beiden vertauscht
                    {
                    w=feld[i];
                    feld[i]=feld[i+1];
                    feld[i+1]=feld[i];
                    anzahlvertauschungen++;
                    }
            }
        }
    
            while(anzahlvertauschungen && end >2);
    
    }
    
    int main()
    {
    
        int feld[]={6,4,8,75,4,58,547,56,54,5887,54,8544,854,75};
        int i;
        int len;
    
        len=sizeof(feld)/sizeof(int);    //Anzahl der Elemente des Feldes berechnen
    
        bubblesort(feld,len);
    
        for(i=0; i<len; i++)
            printf(" %d ", feld[i]);
    }
    

    wenn ich es ausführe, zeigt es auf der Konsole folgendes an:

    4,4,4,4,4,54,54,54,54,54,54,75,75,75

    warum 😕

    Vielen Dank



  • Denk nochmal über deine Implementation einer Vertauschung nach.



  • Weil du falsch tauscht.



  • feld[i+1]=w;
    

    ...



  • AAAAAAAAAAAAAA

    vielen Dank 😃

    das hab ich total überlesen 👍


Anmelden zum Antworten