{
"llm" : {
"feedback" : "# Exercise: sortalgs\n\n### Correctness\n- In `InsertionSort.run`: Du führst keine einzige `data.swap(...)`-Operation aus, d.h. die Daten werden am Ende nicht sortiert (es wird nur eine Position per binärer Suche “gefunden”, aber nichts eingefügt/verschoben).\n- In `InsertionSort.run`: Die Vergleiche verwenden immer `data.less(m, i)` mit einem festen `i` innerhalb der inneren Schleife. Damit vergleichst du gegen ein Element, das sich später beim Verschieben ändern müsste (und aktuell noch gar nicht verschoben wird) – als Insertionsort-Schritt ist das unvollständig.\n\n### Suggestion\n- Überlege beim Insertionsort, was nach dem Finden der Einfügeposition mit dem Element an Position `i` passieren muss, damit es wirklich “eingefügt” wird: Welche Operation(en) brauchst du in dieser API, um Elemente zwischen Einfügeposition und `i` um eine Position zu verschieben?\n- Wenn du eine binäre Suche für die Einfügeposition machst: Achte darauf, dass der “Suchbereich” wirklich der bereits sortierte Teil ist, und dass du nach dem Finden der Position den Arrayzustand entsprechend anpasst (nicht nur den Index berechnest).\n\n### Code Style\n- In `InsertionSort`: Namen wie `l`, `h`, `m` sind bei Sortieralgorithmen schnell schwer lesbar; sprechendere Variablennamen (z.B. low/high/mid oder insertPos) würden die Idee klarer machen.\n- In `SelectionSort`: Der auskommentierte Block mit der “von links wachsend”-Variante ist toter Code und sollte entfernt werden, wenn du dich für eine Variante entschieden hast.\n",
"status" : "SUCCESS"
}
}