Einzelnen Beitrag anzeigen

Dummfisch

Registriert seit: 21. Aug 2004
Ort: Dresden
8 Beiträge
 
#1

Erklärung zum Sortieralgorithmus

  Alt 15. Jan 2006, 17:58
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
  Mit Zitat antworten Zitat