Delphi-Quellcode:
if links <> min then
begin
temp := Form1.DynARray[ links ].SortListNumber;
Form1.DynARray[ links ].SortListNumber := Form1.DynARray[ min ].SortListNumber;
Form1.DynARray[ min ].SortListNumber := temp;
end;
links := links + 1;
end;
end;
Irgendwie wendest du den Algorithmus nicht wirklich an. Es geht darum, dass du das kleinste Element suchst und an den Anfang schiebst und dann im Rest weitersuchst.
Das, was du machst, ist aber, dir nur zu merken, welche beiden Elemente du tauschen müsstest (im ersten Schritt Element 3 auf 0 und 0 auf 3), ohne tatsächlich zu tauschen. Das führt dazu, dass das größere Element an der Stelle bleibt und nicht weiter beachtet wird, während das kleinste Element immer wieder gefunden und als Tauschpartner gefunden wird.
Entweder führst du den Tausch tatsächlich aus oder die passt die Suche nach dem kleinsten Element in der Weise an, dass
immer alle 10 Elemente geprüft werden, aber nur, wenn deren
SortListNumber > aktueller Index ist.