AutoFeedback API

Result 950203de-4b0d-4223-9cf6-71aa61ed9b68

{
  "llm" : {
    "feedback" : "Exercise: mergesort\n\n### 1. Correctness\n- In `merge`: Du kopierst zwar die restlichen Elemente aus der linken *und* rechten Hälfte nach `b`, aber die Aufgabenbeschreibung/Strategie verlangt explizit ein Vorgehen, bei dem nach dem Haupt-While nur **eine** Seite “übrig” ist und dann (mindestens) diese Seite noch kopiert wird; dein Code macht beides. Das ist zwar funktional korrekt, weicht aber von der geforderten Lösungsstrategie/Invariante ab, die in der Aufgabe und Abbildung 6 beschrieben ist.\n\n### 2. Suggestion\n- Schau dir die Invariante aus der Aufgabenstellung an: Sobald die Bedingung `i < m && j < end` nicht mehr gilt, ist genau **eine** der beiden Teilsequenzen aufgebraucht. Überlege, welche Restkopie-Schleife(n) du dann wirklich noch brauchst, wenn du die Strategie strikt umsetzen willst.\n\n### 3. Code Style\n- In `merge` verwendest du `int i = beg; int j = m; int k = 0;` – das ist okay, aber leicht verwirrend, weil `i/j/k` in der Aufgabenstellung meist anders interpretiert werden (typisch: `i` Index in `b`, `j` links, `k` rechts). Einheitliche, sprechendere Namen (z.B. `left`, `right`, `out`) würden die Verständlichkeit erhöhen.\n- Die auskommentierte Alternative mit der for-Schleife ist für eine Abgabe meist unnötig und lenkt ab; entweder drin lassen (und nutzen) oder entfernen.\n",
    "status" : "SUCCESS"
  }
}