{
"llm" : {
"feedback" : "# Exercise: sortalgs\n\n### Correctness\n- In deiner `InsertionSort`-Variante vergleichst du in der Binärsuche immer mit `data.less(m, i)`, obwohl sich das Element an Index `i` später durch die Swaps nach links bewegt. Dadurch kann die gefundene Einfügeposition `h` nicht mehr zur aktuellen Position des einzufügenden Elements passen.\n- Durch die Verwendung von `less` (echt kleiner) in der Binärsuche landet ein Element, das gleich groß ist wie eines im sortierten Teil, nicht zwingend an der erwarteten Position für einen stabilen InsertionSort (Gleichheit wird nicht wie „<=“ behandelt).\n\n### Suggestion\n- Überlege dir, wie du beim „binären Einfügen“ sicherstellen kannst, dass du beim Suchen nach der Einfügeposition nicht von einem Index abhängig bist, dessen Element sich danach durch `swap` verschiebt. Eine Möglichkeit ist, die Einfügeposition so zu bestimmen, dass sie nur vom bereits sortierten Bereich abhängt und vom einzufügenden Element „logisch“ konstant bleibt.\n- Wenn du Stabilität willst (gleiche Elemente behalten ihre Reihenfolge), musst du beim Entscheiden „links oder rechts“ in der Binärsuche auch den Fall „gleich“ passend behandeln. Nutze dazu die Eigenschaft aus der Aufgabenbeschreibung, wie man „kleiner oder gleich“ über `less` ausdrücken kann.\n\n### Code Style\n- In `SelectionSort` ist die komplette alternative Implementierung auskommentiert; das macht den Code unübersichtlich. Besser entfernen oder in eine separate Version/Branch auslagern.\n- Die Kommentare („von links wachsend“, „von rechts wachsend“) sind hilfreich, aber die auskommentierte Version darunter lenkt ab; entscheide dich für eine Variante und dokumentiere diese sauber.\n- In `InsertionSort` sind Variablennamen wie `l`, `h`, `m` sehr kryptisch; sprechendere Namen würden das Verständnis deutlich verbessern (gerade bei Binärsuche).\n",
"status" : "SUCCESS"
}
}