Selectionsort



  • Guten tag,

    ich habe hier versucht Selectionsort anzuwenden, aber es wird nicht sortiert.
    Wo liegt der Fehler?

    static void Selectionsort()
    {
    for (int i = 0; i < liste.GetNum(); i++)
    {
    for (int j = 0; j < liste.GetNum() - 1; j++)
    {
    int ZahlKleiner = i;

    int objektA = (int)liste[j];
    int objektB = (int)liste[ZahlKleiner];
    if (objektA > objektB) // 0, wenn A>B ist, wird vertauscht
    {
    ZahlKleiner = j;
    }
    //Werte vertauschen
    var temp = objektA;
    objektA = objektB;
    objektB = temp;
    }
    }
    }

    Vielen Dank



  • Deine Liste wird gar nicht verändert. Du vertauschst immer nur die Werte deiner lokalen Variablen objektA und objektB.



  • Oh man, bin ich dumm.
    ja stimmt, vielen Dank.

    //Werte vertauschen
    var temp = objektA;
    liste[j] = objektB;
    liste[ZahlKleiner] = temp;

    so jetzt stimmt es 🙂



  • Wenn Du eh schon 2 Hilfsvariablen hast, brauchst Du temp gar nicht.


Anmelden zum Antworten