BucketSort in C

Diskutiere BucketSort in C im C/C++ Forum; Hallo :) Ich wollte gerade eine Übungsaufgabe zum Bucket Sort bearbeiten. Bin nach einer Stunde daran gescheitert. Ich habe mir mal aus dem...

  1. Shantox
    Shantox Mitglied
    Hallo :)

    Ich wollte gerade eine Übungsaufgabe zum Bucket Sort bearbeiten. Bin nach einer Stunde daran gescheitert. Ich habe mir mal aus dem Internet ein Programm rauskopiert, welches den Bucket Sort ausführt. Jedoch habe ich ein paar Verständnisschwierigkeiten. Was die main macht verstehe ich komplett, aber was die Funktion "Bucket_Sort" macht ist mir nicht wirklich klar geworden. Ich hoffe, dass mir das jemand kurz erklären kann, was die 3 for-Schleifen jeweils machen.
    Vielen Dank

    MfG

    Code (C):
    /*
    * C Program to Sort Array using Bucket Sort
    */

    #include <stdio.h>

    /* Function for bucket sort */
    void Bucket_Sort(int array[], int n)
    {
        int i, j;
        int count[n];
        for (i = 0; i < n; i++)
            count[i] = 0;

        for (i = 0; i < n; i++)
            (count[array[i]])++;

        for (i = 0, j = 0; i < n; i++)
            for(; count[i] > 0; (count[i])--)
                array[j++] = i;
    }
    /* End of Bucket_Sort() */

    /* The main() begins */
    int main()
    {
        int array[100], i, num;

        printf("Enter the size of array : ");
        scanf("%d", &num);
        printf("Enter the %d elements to be sorted:\n",num);
        for (i = 0; i < num; i++)
            scanf("%d", &array[i]);
        printf("\nThe array of elements before sorting : \n");
        for (i = 0; i < num; i++)
            printf("%d ", array[i]);
        printf("\nThe array of elements after sorting : \n");
        Bucket_Sort(array, num);
        for (i = 0; i < num; i++)
            printf("%d ", array[i]);
        printf("\n");
        return 0;
    }
     
    Zuletzt von einem Moderator bearbeitet: 30. Nov. 2017
  2. Vielleicht helfen dir diese Grundlagen hier weiter: (hier klicken)
  3. blubbrezn
    blubbrezn Neues Mitglied
    Ui ui ui, aus der Quelle solltest du besser keinen Code mehr kopieren
    Leider wird hier kein Buketsort implementiert, aber zumindest kann man einige Syntax Fehler verbessern

    Code (C):
    /* Function for bucket sort */
    void Bucket_Sort(int array[], int n)
    {
       int i, j;
       int count[n];
       for (i = 0; i < n; i++){ // Klammern bei for Schleifen machen deutlich, was alles mehrmals
       // ausgeführt wird, sonst wird nur der nächste Befehl von der for Schleife erfasst
          count[n] = 0; //count ist ein Pointer, erst mit der Klammer wird ein Integer
          // angesprochen, dem ein Wert zugewiesen werden kann
       }

       for (i = 0; i < n; i++){
          (count[array[n]])++; //was der Programmierer hier wollte lässt sich
           //nur erahnen, array ist ein Pointer und eignet sich daher nicht als Index
       }

       for (i = 0, j = 0; i < n; i++){
          for(; count > 0; (count)--){
             array[j++] = i;
          }
       }
    }
    /* End of Bucket_Sort() */
    Wenn du eine Bucketsort implementieren musst, musst du den Wertebereich kennen in dem deine Elemente sind.
     
    Zuletzt bearbeitet: 28. Nov. 2017
  4. mrBrown
    mrBrown Bekanntes Mitglied
    Ist Countingsort (wobei, ist das nicht nur ein Sonderfall des Bucketsort mit Bucketgröße 1?:p )

    Die Syntaxfehler kommen allesamt durchs Forum, [i] wird als kursiv interpretiert ;)
     
  5. blubbrezn
    blubbrezn Neues Mitglied
    ok, ja so kann man das auch sehen :)
    Das hab ich leider nicht gecheckt ein "[code] [/code]" Block wäre da praktisch.
    Auch in meiner Verbesserung sollte natürlich statt [n] [i] stehen in Zeile 8 und 13.
    Ich kann es leider nicht mehr bearbeiten:(, geht das noch ?
     
    Zuletzt von einem Moderator bearbeitet: 30. Nov. 2017
  6. Hast du dir unsere Java-Grundlagen hier schon gesichert? *Klick*
Die Seite wird geladen...

BucketSort in C - Ähnliche Themen

Bucketsort Implementierung
Bucketsort Implementierung im Forum Java Basics - Anfänger-Themen
Bucketsort Implementierung
Bucketsort Implementierung im Forum Java Basics - Anfänger-Themen
Bucketsort-Frage
Bucketsort-Frage im Forum Java Basics - Anfänger-Themen
Thema: BucketSort in C