SELECTION SORT PROBLEME-HILFE!!



  • Hallo alle zusammen, habe flgendes Problem:
    Soll ein Programm das Zufallszahlen generiert und sortiert erstellen, habe auch soweit alles erledigt doch beim Selection Sort muss irgendetwas nicht stimmen weil die Zahlen total durcheinander ausgegeben werden. schaut selbst und gebt mir bitte ein paar Tipps:

    void selsort(int *Array, int length)
    {
    int hilf=0;int min=0;
    cout<<"########SELECTSORT########"<<endl<<endl;
    for(int i=0;i<(length-1);i++)
    {
    int min=i;
    for(int j=i;j<length;j++)
    {
    if(Array[j]<Array[min]){ min=j;}
    hilf=Array[i];
    Array[i]=Array[min];
    Array[min]=hilf;
    }
    }
    for(int i=0;i<length;i++)
    cout<<i+1<<". Zufallszahl: \t\t"<<Array[i]<<endl<<endl;
    }



  • Neben der Tatsache, daß du den Quelltext vorm Absenden nicht innerhalb den für dieses Forum sinnvollen C/C++-Tags gesetzt hast, was du noch nachholen solltest(!),
    stellt sich mir die Frage, wo du eigentlich den Quelltext des Selection-Sort her hast?
    Da du den Namen schon kennst, solltest du doch eigentlich auch eine Quelle dafür haben und da sollte er dann doch eigentlich richtig dargestellt sein, oder?
    Momentan würde ich behaupten, du hast ihn einfach falsch abgetippt / kopiert!



  • ASDASDASD schrieb:

    .. doch beim Selection Sort muss irgendetwas nicht stimmen weil die Zahlen total durcheinander ausgegeben werden. schaut selbst und gebt mir bitte ein paar Tipps:

    Du hast lediglich eine geschlossene Klammer falsch gesetzt. So isses besser:

    void selsort(int *Array, int length)
    {
        int hilf=0;
        cout<<"########SELECTSORT########"<<endl<<endl;
        for( int i=0; i<(length-1); ++i )
        {
            int min=i;
            for( int j=i; j<length; ++j )
            {
                if( Array[j] < Array[min] ){ min=j;}
            } // <-- hier ist die Klammer richtig
            hilf = Array[i];
            Array[i] = Array[min];
            Array[min] = hilf;
            // } <-- hier nicht
        }
        for( int i=0; i<length; ++i )
            cout<<i+1<<". Zufallszahl: \t\t"<<Array[i]<<endl<<endl;
    }
    

    Gruß
    Werner


Anmelden zum Antworten