AutoFeedback API

Result b92bdfef-b497-4f05-9035-4f2cda5797c2

{
  "llm" : {
    "feedback" : "Exercise: sortalgs\n\n### 1. Correctness\n- `InsertionSort.run(...)` ist leer und sortiert damit gar nicht, obwohl die Aufgabe verlangt, InsertionSort zu implementieren.\n- In `SelectionSort` wird `currentSmallest` nach einem Durchlauf nicht auf den aktuellen `left`-Index zurückgesetzt; dadurch kann in späteren Durchläufen ein Minimum aus einem bereits “abgeschlossenen” linken Bereich gewählt werden, was die Sortierung verletzt.\n- Die äußere Schleife läuft bis `left < data.size()`, obwohl beim SelectionSort der letzte Index keinen Suchdurchlauf mehr braucht; so machst du unnötige Iterationen (und in Kombination mit dem Reset-Problem kann das Verhalten zusätzlich verwirrend werden).\n\n### 2. Suggestion\n- Für InsertionSort: Überlege dir das typische Schema „wachsend sortierten linken Teil aufbauen“: Für jedes Element ab Index 1 wird so lange nach links getauscht, bis es nicht mehr kleiner als sein linker Nachbar ist (nur mit `less` und `swap`).\n- Für SelectionSort: Stelle sicher, dass die Variable für das Minimum zu Beginn **jedes** äußeren Durchlaufs auf den Start des unsortierten Bereichs gesetzt wird (also auf den aktuellen linken Rand), nicht nur einmal am Anfang.\n- Prüfe die Grenzen der äußeren Schleife: Wenn nur noch ein Element übrig ist, gibt es nichts mehr zu selektieren/tauschen; passe die Abbruchbedingung entsprechend an.\n\n### 3. Code Style\n- Die Variablennamen `left` und `i` sind etwas uneinheitlich: Für SelectionSort sind Begriffe wie „start/unsortedIndex“ und „minIndex“ oft leichter verständlich.\n- In `SelectionSort` könntest du die beiden `while`-Schleifen auch als klarere `for`-Schleifen ausdrücken (gleiche Logik, bessere Lesbarkeit), besonders weil es klassische Zählschleifen sind.\n- In `InsertionSort` steht noch ein `// TODO` ohne Implementierung; entweder implementieren oder den Kommentar entfernen, sobald fertig.\n",
    "status" : "SUCCESS"
  }
}