Hey,
ich habe eine Frage zu folgendem Sortieralgorithmus:
Delphi-Quellcode:
procedure tausch (
var a, b : integer);
var
h: integer;
begin
h := a;
a := b;
b := h;
end;
procedure sortieren (
var feld : TFeld);
var
i, y : integer;
begin
for i := 1
to 5
do
begin
y := i;
while feld[y+1] < feld[y]
do
begin
tausch (feld[y], feld[y+1]);
if y > 1
then dec(y);
end;
end;
end;
Was genau macht das if y > 1 then
dec(y) ?
Also ich weiß, dass da der Wert y um 1 vermindert wird, wenn y > 1 ist, aber warum wird das gemacht?
y ist doch immer i und innerhalb der While-Schleife wird doch der Wert nicht geändert?
Kann mir das jemand näher erklären wie das funktioniert? Ich denke das hängt irgendwie mit dem Sortieralgorithmus zusammen oder?
Danke schonmal!
MfG