Ich glaube dir nicht, das du es nicht verstanden hast. Aber wenn Du es nicht verstehst, wieso willst Du dann eine gute Note?
Ehrlich, es mag Dir oberlehrerhaft vorkommen, aber wenn Du dir heute eine gute Note erschleichst, dann wirst Du es einfach nu nix bringen. Programmieren bedeutet, das man das Zeugs auch kapiert. JEDER, ich wiederhole, JEDER Programmierer hat sich an Sortieralgorithmen (oder noch schlimmer: Rekursiven Algorithmen) die ersten grauen Haare geholt. Ich eingeschlossen. Du MUSST da durch. Ausser, Du hast kein Bock drauf. Dann: Geh Putzen oder schraub an Autos rum (nix gegen Mechaniker).
Insertion Sort geht so:
Ich gehe die Liste von vorne (1) nach hinten (N) durch und füge das i.te Element in die (per definitionem sortierte) Teilliste 1..i-1 an der entsprechenden Stelle ein.
Ungefähr so (fast 1:1 kopiert aus dem Link, den du angeblich nicht verstehst):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Procedure InsertionSort (A : TArray; N : Integer); Var i,j : Integer;
Begin For i:=1 to N-1 do For j := i downto l do if (A[j] > A[j+1]) then exchange (A[j], A[j+1]); End; |
Natürlich musst Du noch 'exchange' auskodieren. Es geht darum, die Elemente a[j] und a[j+1] zu vertauschen. Wie man ein Feld A mit Zufallszahlen füllt und das Ergebnis hinterher ausgibt, das schaffst Du.
Was machst Du eigentlich, wenn dein Lehrer dich auffordert, deinen Code zu erklären?